首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 5.7 新特性之二

简介

本系列基于5.7.20 版本来讲述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, NO_ENGINE_SUBSTITUTION"

看着这么多的值很多DBA小伙伴是不是眼前一亮,这里说一下我测试过程中遇到的“坑”,其他的需要各位去探索。

STRICT_TRANS_TABLES意思是说要存储的字段的长度大于字段定义的大小,直接报错而非像5.6版本以及之前,截断数据进行存储,同时抛出一个warning。

NO_AUTO_CREATE_USER意思是不能像5.6 那样通过grants创建用户并赋权了,而是像Oracle那样,先create user,然后再对账号进行赋权。

注意: 升级版本的时候 确保sql_mode 向前兼容,否则会和开发哥哥吵起来。

详细了解SQL_MODE 请移步《sql_mode官方文档》[2]

2 online ddl支持 rename index name

个人感觉这个功能比较不怎么实用,通常改变索引名称的时候,索引中的字段也需要调整,单独修改索引的情况比较少。

mysql> alter table yy rename index idxname to idxnm; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0

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

参考文章

[1] https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html

[2] https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-changes

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180226G04MVJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券