前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 5.7 新特性之二

MySQL 5.7 新特性之二

作者头像
用户1278550
发布2018-08-09 14:41:19
3000
发布2018-08-09 14:41:19
举报
文章被收录于专栏:idbaidba

简介

本系列基于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"

代码语言:javascript
复制
master (none) 09:44:16> show  variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| 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 |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.07 sec)

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

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

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

5.7 对于null,'00000000 00:00:00' 这类default值的影响.工作中遇到很多开发的同学喜欢用'00000000 00:00:00'来作为默认时间,在5.6 版本之前可以,但是在5.7版本中会有一定的问题。

注意: 升级版本的时候 确保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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 参考文章
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档