MySQL 5.7.9 GA稳定版新特性解读

2015年10月22日,MySQL发布5.7.9稳定版,虽然MySQL官方手册里已经有不少关于MySQL 5.7新特性的介绍,在这里,仍是
让咱们一块儿看看在MySQL 5.7里有哪些值得咱们关注的新特性吧。 

一、安全性
用户表mysql.user的plugin字段不容许为空,默认值是mysql_native_password,而不是mysql_old_password,再也不支持旧密码格式;
增长密码过时机制,过时后须要修改密码,不然可能会被禁用,或者进入沙箱模式;
使用mysql_install_db初始化时,默认会自动生成随机密码,并保存到/var/log/mysqld.log中(grep 'temporary password' /var/log/mysqld.log),并且不建立除root@localhost 外的其余帐号,也不建立test库;
在5.7中,推荐使用mysqld --initialize对数据库进行初始化,在初始化时若是加上–initial-insecure,则会建立空密码的 root@localhost 帐号,不然会建立带密码的 root@localhost 帐号,密码直接写在 log-error 日志文件中(在5.6中是放在~/.mysql_secret里);在5.7中能够对普通用户进行unlock及lock操做。 

二、加强了InnoDB引擎的一些功能
优化了DDL操做,在涉及到InnoDB临时表时,性能显著提高;在5.6及之前,InnoDB临时表的元数据存储在InnoDB系统表里,在5.7中,临时表的信息及元数据都存储在新多出来的表INNODB_TEMP_TABLE_INFO中;
在5.7中,InnoDB临时表会存储在一个非压缩的、单独的表空间中,每次启动MySQL服务,都会自动建立该表空间,默认存储在DATADIR下,其路径由参数innodb_temp_data_file_path指定;
支持在线(INPLACE)增长VARCHAR列的长度。不过0-255长度是一个区间,256以上是另外一个区间,不能跨越255这个坎,好比把长度从100扩展成1000(由于255长度之内额外用1个字节表示,大于255长度则须要额外2个字节表示);不支持在线缩小VARCHAR的长度 ;支持innodb_page_cleaners选项可设置多个page cleaner线程提升脏页刷新效率 ;可经过设置innodb_undo_log_truncate等选项自动删除不用的undo log ;
增强InnoDB read-only模式的性能 ;
在5.7中,能够建立一个普通的表空间:
CREATE TABLESPACE `
tablespace_name`   ADD DATAFILE 'file_name.ibd' 
[FILE_BLOCK_SIZE = n]

三、SQL_MODE
默认启用STRICT_TRANS_TABLES模式;
对ONLY_FULL_GROUP_BY模式实现了更复杂的特性支持,而且也被默认启用;
其余被默认启用的sql mode还有NO_ENGINE_SUBSTITUTION。在5.6中对一个10字符长度的VARCHAR列
写入15个字符,会自动截断并给出告警,而在5.7,则直接抛出错误了。

四、优化online操做,例如修改buffer pool、修改索引名(非主键)、修改REPLICATION FILTER、修改MASTER而无需关闭SLAVE线程等众多特性。

五、在5.7中,能够在INFORMATION_SCHEMA里面的表中查看MySQL的系统参数

六、支持一个表上有多个触发器,这样一来,原先已有触发器表也能够支持用pt-osc 了

七、支持对在线某个链接直接查看执行计划,好比EXPLAIN FOR CONNECTION 1024

八、新增log_syslog选项,可将MySQL日志打印到系统日志文件中 

九、在MySQL 5.6之前,在客户端CTRL+C后会直接退出啊MySQL客户端,这一点比较恶心,在5.7之后不会退出客户端而是终端当前的操做

十、新增一个比较好的功能,就是在CREATE | ALTER TABLE时,能够在某张表已有列的基础上,对新增的列进行运算:
CREATE TABLE triangle ( 
sidea DOUBLE, 
sideb DOUBLE,  
sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))
);

INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,undefined;

mysql> SELECT * FROM triangle;
+-------+-------+--------------------+|
sidea | sideb | sidec             
|+-------+-------+--------------------+
|     1 |     1 | 1.4142135623730951 |
|     3 |     4 |                  5 |
|     6 |     8 |                 10 |
+-------+-------+--------------------+ 

十一、支持多源复制,能够把多个MASTER的数据归并到一个实例上,若是是同一个表的话,会存在主键和惟一索引冲突的风险,须要提早作好规划。 
十二、支持多线程复制。

更多精彩MySQL内容 请关注我:
html

相关文章
相关标签/搜索