本文翻译自官方mysql 5.7使用手册,参考原文地址:https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html
一、新增特性
1、安全提升
1.1 要求mysql.user表中plug字段不能为空,如果为空,则该用户被禁止使用。
1.2 增加密码过期策略
1.3 帐户可以加锁解锁
1.4 使用mysql_ssl_rsa_setup
工具能够更容易创建使用ssl
1.5 初始化数据库时用mysqld –initialize替换以前的 mysql_install_db
2、SQL mode changes
默认启用 ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION.
3、 ONLINE DDL支持rename index
4、 全文索引支持中文,日语,韩文
5、innodb提升
5.1 在线修改varchar长度,支持in-place算法,但这是条件的,只支持2种情况,一种是长度在0到-255之间增加,另一种是在256到更大之间。不支持由255之前的一个长度跳到256之后的长度。也不支持减长度。 不支持的情况用的是copy算法。 所以。在定varchar长度的时候,如果长度是大于200了,但是不确定以后会不会改的情况下,就直接写个256。
5.2 临时表TEMPORARY table优化了DDL操作的性能
5.3 临时表的元数据不再存innodb的系统表,单独存在INNODB_TEMP_TABLE_INFO指定的表里。包含所有用户的临时表信息。这个表在第一次执行select查询时创建。
5.4 MySQL支持地理空间数据类型, 在此之间,mysql存在blob类型中。 地理空间数据,现在映射成内部的数据类型DATA_GEOMETRY