MySQL从5.7升级到8.0后,有些SQL语法发生了变更
【不常用】 废弃了 GROUP BY 分组的排序 ASC 和 DESC, 存储过程中包含此语法的无法正常执行;
【不常用】 最新版可能不支持 &&, ||, ! 的语法, 需要使用标准 SQL 的 AND, OR, NOT 进行替换;
【不常用】 外键的名字在整个 schema 中必须唯一;
【常用】 支持公共表表达式cte, 窗口函数,不再支持5.6,5.7 的土方法实现递归这种写法
【不常用】 支持备份锁(backup lock)
【常用】使用 select xxx into outfile xx from xxx 语法导出数据, select xx from xxx into outfile .. 这种写法尽快改了后续新版本要废弃;
【DBA常用】 使用 set password for ... = '' 修改用户密码, password(..) 语法已经废弃;
【不常用】 不支持 SELECT SQL_NO_CACHE ... 语法;
【DBA常用】 sqllogbin 仅支持会话级别的设置;
【常用】 使用 EXPLAIN 时, 不支持 EXTENDED 和 PARTITIONS 关键字一起使用;
【DBA常用】 索引增加 invisible index(隐藏索引), 一个索引被设置为 invisible 后, 优化器会忽略该索引. 适合性能调试;
【索引常用】 索引支持 descending index(降序索引);
【索引常用】索引支持 functional index(函数索引)
【索引常用】索引索引命中优化, 更多见 optimizer hints;
【常用】建表语句没有整形宽度 id int(11) NOT NULL 变成id int NOT NULL
【不常用】MySQL8.0新增131个关键字,减少 6个关键字
明细点 >> 阅读原文




