MySQL 5.7 vs 8.0版本的性能有什么区别

1、新增持久化设置

MySQL8.0 新增 SET PERSIST 的命令,该命令的配置值保存到数据目录下的mysqld-auto.cnf文件中,待重启后,读取该文件,用其中的配置覆盖缺省的配置文件,补充了SET GLOBAL 命令只能临时生效的不足;

命令的使用:

SET PERSIST max_connections = 400;

2、废弃查询缓存

将SELECT的语句和相应的结果缓存起来并发送给客户端,如果同样的SELECT语句之后再过来,就直接返回缓存里面的查询结果,并且查询缓存是客户端共享的,一个客户端生成,其他客户端也有用。但是需要说明一点,查询缓存不能够返回稳定的数据,如果表数据被修改,相关的条目将被清空,重新生成;

3、UTF-8编码

从MySQL8.0开始,使用utf8mb4 作来MySQL的默认字符集,并支持 Unicode 9,默认字符集将从 latin1 改为 utf8mb4,默认定序collation将从latin1_swedish_ci 改为 utf8mb4_800_ci_ai;

4、性能升级

官方表示MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍;

5、新增窗口函数

也就是在满足某种条件的记录集合上执行的特殊函数。它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要GROUP BY。窗口函数的使用,将大大提高相关的分析型场景的效率;

6、隐藏索引

可以将索引通过命令设置为隐藏或显示。对于被隐藏的索引,它不会被查询优化器所使用,我们可以使用这一功能,对相关的查询进行性能调试,通过隐藏或显示,分析数据库性能差异的原因,同时也可以去除无效的索引。

posted @ 2022-08-23 20:38  李若盛开  阅读(2225)  评论(0)    收藏  举报