看看MySQL 5.6, 5.7, 8.0的新特性!


当前第2页 返回上一页

● mysql_install_db被mysqld --initialize代替,用来进行实例的初始化。

● 原生支持systemd。

● 引入了super_read_only选项。

● 可设置SELECT操作的超时时长(max_execution_time)。

● 可通过SHUTDOWN命令关闭MySQL实例。

● 引入了innodb_deadlock_detect选项,在高并发场景下,可使用该选项来关闭死锁检测。

● 引入了Optimizer Hints,可在语句级别控制优化器的行为,如是否开启ICP,MRR等,在此之前,只有Index Hints。

● GIS的增强,包括使用Boost.Geometry替代之前的GIS算法,InnoDB开始支持空间索引。

2018年,MySQL 8.0发布,其包括如下重要特性及更新。

● 引入了原生的,基于InnoDB的数据字典。数据字典表位于mysql库中,对用户不可见,同mysql库的其它系统表一样,保存在数据目录下的mysql.ibd文件中。不再置于mysql目录下。

● Atomic DDL。

● 重构了INFORMATION_SCHEMA,其中,部分表已重构为基于数据字典的视图,在此之前,其为临时表。

● PERFORMANCE_SCHEMA查询性能提升,其已内置多个索引。

● 不可见索引(Invisible index)。

● 降序索引。

● 直方图。

● 公用表表达式(Common table expressions)。

● 窗口函数(Window functions)。

● 角色(Role)。

● 资源组(Resource Groups),可用来控制线程的优先级及其能使用的资源,目前,能被管理的资源只有CPU。

● 引入了innodb_dedicated_server选项,可基于服务器的内存来动态设置innodb_buffer_pool_size,innodb_log_file_size和innodb_flush_method。

● 快速加列(ALGORITHM=INSTANT)。

● JSON字段的部分更新(JSON Partial Updates)。

● 自增主键的持久化。

● 可持久化全局变量(SET PERSIST)。

● 默认字符集由latin1修改为utf8mb4。

● 默认开启UNDO表空间,且支持在线调整数量(innodb_undo_tablespaces)。在MySQL 5.7中,默认不开启,若要开启,只能初始化时设置。

● 备份锁。

● Redo Log的优化,包括允许多个用户线程并发写入log buffer,可动态修改innodb_log_buffer_size的大小。

● 默认的认证插件由mysql_native_password更改为caching_sha2_password。

● 默认的内存临时表由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版本。

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

c9ff0619b99c706b4637ef232640b15.png

https://en.wikipedia.org/wiki/MySQL#Release_history

从表中的数据来看,

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

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

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

原文地址:https://www.cnblogs.com/ivictor/p/9807284.html

以上就是看看MySQL 5.6, 5.7, 8.0的新特性!的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

图解mysql的安装和数据升级

如何在phpmyadmin中修改mysql密码

mysql中查询json格式的字段实例详解

mysql 修改编码失败怎么办

为何要将ubuntu 16.04 设置 mysql 的编码为 utf8?

mysql如何正确地利用aes_encrypt()与aes_decrypt()加解密

mysql索引不生效的解决办法

mysql数据如何设置不重复

mysql中char和varchar的区别

pinterest mysql实践利用分片来解决百亿数据的存储问题

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...