mysql5.6和5.7的区别是什么?

mysql5.6和5.7的区别是什么?,第1张

mysql5.7是5.6的新版本,在没有减少功能的情况下新增了功能与进行了优化,例如新增了新的优化器、原生JSON支持、多源复制,还优化了整体的性能、GIS空间扩展、InnoDB。

1、原生json支持

MySQL 5.7可以定义原生json类型数据,对json数据进行有效性检查,查询不需要遍历所有字符串才能找到数据,通过虚拟列的功能可以对JSON中的部分数据进行索引。

2、多源复制

MySQL 5.7开始支持多源复制,也就是多主一从的复制架构。各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了),还有最后一个救命稻草。不需要每个库都做一个实例,也减少了DBA的维护成本。

3、InnoDB优化

MySQL 5.7针对innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_method提供了更加合适的默认值。

参考资料来源:MYSQL-MySQL 5.7的新增功能

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语句的结果集映射成的虚拟表)

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

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

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

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

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

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7676591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存