MySQL 5.6, 5.7, 8.0版本的新特性大全(2)

默认的内存临时表由MEMORY引擎更改为TempTable引擎,相比于前者,后者支持以变长方式存储VARCHAR,VARBINARY等变长字段。从MySQL 8.0.13开始,TempTable引擎支持BLOB字段。

Grant不再隐式创建用户。

SELECT ... FOR SHARE和SELECT ... FOR UPDATE语句中引入NOWAIT和SKIP LOCKED选项,解决电商场景热点行问题。

正则表达式的增强,新增了4个相关函数,REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),REGEXP_SUBSTR()。

查询优化器在制定执行计划时,会考虑数据是否在Buffer Pool中。而在此之前,是假设数据都在磁盘中。

ha_partition接口从代码层移除,如果要使用分区表,只能使用InnoDB存储引擎。

引入了更多细粒度的权限来替代SUPER权限,现在授予SUPER权限会提示warning。

GROUP BY语句不再隐式排序。

MySQL 5.7引入的表空间加密特性可对Redo Log和Undo Log进行加密。

information_schema中的innodb_locks和innodb_lock_waits表被移除,取而代之的是performance_schema中的data_locks和data_lock_waits表。

引入performance_schema.variables_info表,记录了参数的来源及修改情况。

增加了对于客户端报错信息的统计(performance_schema.events_errors_summary_xxx)。

可统计查询的响应时间分布(call sys.ps_statement_avg_latency_histogram())。

支持直接修改列名(ALTER TABLE ... RENAME COLUMN old_name TO new_name)。

用户密码可设置重试策略(Reuse Policy)。

移除PASSWORD()函数。这就意味着无法通过“SET PASSWORD ... = PASSWORD('auth_string') ”命令修改用户密码。

代码层移除Query Cache模块,故Query Cache相关的变量和操作均不再支持。

BLOB, TEXT, GEOMETRY和JSON字段允许设置默认值。

可通过RESTART命令重启MySQL实例。

需要注意的是,上面提到的发布,一般指的是GA版本。

最后,看看下面这个表格,表中给出了最近几个大版本的发布时间,及截止到本书出版,其最新的小版本及其发布时间。

MySQL 5.6, 5.7, 8.0版本的新特性大全

从表中的数据来看,

1. 大概每3年会发布一个大的版本。

2. 产品的支持周期一般是8年。

3. 以为MySQL 5.5是老古董了,但官方仍然在不断更新。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a4134a3af3ab77d3d8114253e7c5ec9b.html