mysql 5.7视图_Mysql 5.7新特性: JSON字段、虚拟列、视图

JSON字符串保存数据

1)减少数据表的设计,随意增减字段。

2)后期进行字段拆分会涉及代码修改,数据迁移。

3)减少数据表的查询,关联查询,一个结果代替几个查询结果。降低数据库压力。

4)适合简单展示的字段可以用,对其进行条件查询,更新效率很低的,不适合关系型数据库。

5)经常使用的字段建议也不要存放在json中,即使不被用作查询条件,因为应用程序每次解析仍然是一个耗时的操作。

什么是虚拟列?

alter table ba_bgt_info add v_is_auto varchar(300) generated always AS(manage_categories->"$.isAuto")

在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。很明显,后者存放了可以通过已有数据计算而得的数据,需要更多的磁盘空间,与Virtual Column相比并没有优势,因此,MySQL 5.7中,不指定Generated Column的类型,默认是Virtual Column。

如果需要Stored Generated Golumn的话,可以在Virtual Generated Column上建立索引更加合适

综上,一般情况下,都使用Virtual Generated Column,这也是MySQL默认的方式

能正常加索引、特殊用途冗余列、列长度还是和定义类型一样、查询效率上,物理>STORED>VIRTUAL

虚拟列跟视图的区别

虚拟列:一个或多个字段的数据函数处理后的结果集映射成的字段

视图:一个或多个表依照某个条件组合而成的结果集(相当于一个查询sql语句的结果集映射成的虚拟表)

其本质其实都是以空间换时间

Mysql视图

什么是视图?视图是干什么用的?

视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。

通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。

基表:用来创建视图的表叫做基表base table

为什么要使用视图?

因为视图的诸多优点,如下

1)简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。

2)安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。

3)数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。

总而言之,使用视图的大部分情况是为了保障数据安全性,提高查询效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值