天天看点

MySQL 5.7版本新特性连载(六)

本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化。

  1. 自动判断底层I/O设备是否可以支持原子IO(AIO),检测到的话,会自动关闭 double write buffer,进一步提升性能。
  2. 支持 innodb_page_cleaners 选项可设置多个page cleaner线程提高脏页刷新效率。
  3. 可通过设置 innodb_undo_log_truncate 等选项自动删除不用的 undo log。
  4. 加强InnoDB read-only模式的性能。
  5. 支持一个表上有多个触发器,这样一来,原先已有触发器表也可以支用 pt-osc 了。
  6. 新增 log_syslog 选项,可将MySQL日志打印到系统日志文件中。
  7. InnoDB和MyISAM引擎的分区表也支持ICP特性。
  8. 支持对在线某个连接直接查看执行计划,比如 EXPLAIN FOR CONNECTION 1024。
  9. 支持在线(INPLACE)增加 VARCHAR 列的长度。不过 0-255 长度是一个区间,256 以上是另一个区间,不能跨越255这个坎,比如把长度从 100 扩展成 1000(因为 255 长度以内额外用1个字节表示,大于 255 长度则需要额外2个字节表示)。另外还不支持在线缩小 VARCHAR 的长度。
  10. 以及更多关于性能上的改善提升,包括客户端连接效率提升、批量数据加载效率提升、sort buffer中存储的非排序字段是压缩模式的(提高内存利用率)、UNION ALL不再产生临时表、解析器重构、查询优化器进一步完善(比如增加可控CBO规则)等等。