Mysql8和mysql5.7的区别有哪些
Mysql8和Mysql5.7都是最常用的关系型数据库之一,然而它们之间还是存在一些区别的。以下是一些重要的区别:
1. NoSQL存储
Mysql从5.7版本开始提供了NoSQL的存储功能,这在实际中很少被使用。在8.0中,NoSQL存储得到了一些修改。
2. 隐藏索引
Mysql8.0新增了隐藏索引的特性,这个特性对于性能调试来说非常有用。在8.0中,当一个索引被隐藏时,它不会被查询优化器所使用。你可以隐藏一个索引,观察对数据库的影响。如果性能下降,就说明这个索引是有效的,可以将其“恢复显示”;如果数据库性能看不出变化,说明这个索引是多余的,可以删掉了。隐藏一个索引的语法是ALTERTABLEtALTERINDEXiINVISIBLE,恢复显示该索引的语法是ALTERTABLEtALTERINDEXiVISIBLE。
3. 设置持久化
Mysql8.0新增了SETPERSIST命令,可以将该命令的配置保存到数据目录下的mysqld-auto.cnf文件中。下次启动时会读取该文件,用其中的配置来覆盖缺省的配置文件。
4. UTF-8编码
从Mysql8.0开始,数据库的缺省编码将改为utf8mb4,这个编码包含了所有emoji字符。这样我们就不用再担心因为编码问题出现乱码的情况。
5. 通用表表达式
Mysql8.0新增了通用表表达式(Common Table Expressions),这个特性在很多报表场景是很有用的。复杂的查询常常使用嵌入式表,但是使用CTE可以使得查询更加清晰。
6. 窗口函数
Mysql8.0新增了窗口函数的概念,可以用来实现若干新的查询方式。窗口函数有点像SUM()、COUNT()那样的集合函数,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。例如,可以使用窗口函数对班级人数从小到大进行排名。
以上就是Mysql8和Mysql5.7的区别,这些新特性都是在优化查询性能和使用方面很有用的。如果你正在使用Mysql,可以考虑升级到最新的版本。

-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
mysql的触发器是什么级的 2023-05-14 07:00:02
-
mysql如何修改字段类型 2023-05-14 07:00:02
-
如何解决mysql服务1067错误问题 2023-05-14 07:00:02