长期计划是将它们包含在严格的 SQL 模式中,并在未来的 MySQL 版本中将其删除为显式模式
默认 SQL 模式的更改导致默认的 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。
详细请参见:MySQL 5.7 中的 SQL 模式更改
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-changes
2.1.3 在线 ALTER TABLE
ALTER TABLE 现在支持重命名索引的 RENAME INDEX 子句。在没有 table-copy 操作的情况下才能进行。 它适用于所有
存储引擎。详细请参见:
https://dev.mysql.com/doc/refman/5.7/en/alter-table.html
2.1.4 ngram 和 MeCab 全文解析器插件
MySQL 提供了一个内置的全文 ngram 解析器插件,支持中文,日文和韩文(CJK)和一个可安装的 MeCab 全文解析器插件。
详细请参见:
https://dev.mysql.com/doc/refman/5.7/en/fulltext-search-ngram.html
https://dev.mysql.com/doc/refman/5.7/en/fulltext-search-mecab.html
2.1.5 InnoDB 增强功能
添加了以下 InnoDB 增强功能:
1)使用 in-place ALTER TABLE 可能会增加 VARCHAR 大小,如本示例所示:
ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);
只要 VARCHAR 列所需的长度字节数保持不变,这是正确的。 对于 0 到 255 的 VARCHAR 值,需要一个长度字节来对该值进
行编码。 对于 256 字节或更多的 VARCHAR 值,需要两个长度字节。 因此,就地 ALTER TABLE 仅支持将 VARCHAR 大小
从 0 增加到 255 字节,或者从等于或大于 256 字节的值增加 VARCHAR 大小。
In-place ALTER TABLE 不支持将 VARCHAR 大小从小于 256 字节增加到等于或大于 256 字节的值。 在这种情况下,所
需长度字节的数量将从 1 变为 2,这仅由表副本(ALGORITHM = COPY)支持。 例如,尝试使用就地 ALTER TABLE 将
VARCHAR 列大小从 255 更改为 256 将返回错误:
ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(256);
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change
column type INPLACE. Try ALGORITHM=COPY.