转载

【MySQL】5.7新特性之二

本系列基于5.7.12 版本来讲述MySQL的新特性,从安装,文件结构,SQL  ,优化 ,运维层面 复制,等几个方面展开介绍5.7 的新特性和功能,同时也建议大家跟踪官方blog和文档,以尽快知悉其新的变化。
1 SQL_MODE的变化
官方文档上表述, 5.7 版本默认的SQL_MODE="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" 。而实际上我自己的测试环境中默认添加了 STRICT_TRANS_TABLES 属性。
  1. mysql> select @@sql_mode;
  2. +--------------------------------------------+
  3. | @@sql_mode |
  4. +--------------------------------------------+
  5. | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
  6. +--------------------------------------------+
  7. 1 row in set (0.00 sec)
 STRICT_TRANS_TABLES 意思是说要存储的字段的长度大于字段定义的大小,直接报错而非像5.6版本以及之前,截断数据进行存储,同时抛出一个warning。注意同一个会话调整 sql_mode 必须退出之后在进入sql_mode才会生效。详细了解SQL_MODE 请移步sql_mode官方文档》 注意5.7 对于null,'00000000 00:00:00' 这类default值的影响.
【MySQL】5.7新特性之二【MySQL】5.7新特性之二


2 online ddl支持 rename index name .个人感觉这个功能比较鸡肋,通常改变索引名称的时候 本身索引的结构需要增删字段,新建的索引名称也要修改合适的名称。
  1. mysql> alter table yy rename index idx_name to idx_nm;
  2. Query OK, 0 rows affected (0.01 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0

3 新增内置的full text 插件,支持中文 ,韩文,日文全文索引。
  之前的版本 只能依赖单词之间空格进行分词,对于依赖于语义分词而非空格分词的其他语言种类,5.7 版本的引入支持解析中文,韩文,日文的全文索引--ngram full-text parser解决了该问题。具体请移步ngram Full-Text Parser

参考文章
《what is new in MySQL 5.7

正文到此结束
Loading...