【转载】MySQL Community Server 5.7.5发布

来源:互联网 发布:游族游戏官方网络 编辑:程序博客网 时间:2024/05/19 03:22

改进1: 内存动态管理: 此版本对InnoDB的Buffer Pool(innodb_buffer_pool_size)允许在联机状态下修改其大小.这极大地提升了InnoDB缓存区管理的灵活性,另外可有效动态提升Server的整体效率

改进2: Optimizer – ONLY_FULL_GROUP_BY mode. 在分组操作时,使得MySQL能识别目标列/排序列/HAVING的条件列/DISTINCT对象列等非分组对象列. The user can also now specify the ANY_VALUE clause which then relaxes the rules for the HAVING, DISTINCT, and ORDER BY clauses.

改进3: Performance Schema持续被优化. 包括:执行器中当IO发生时,对表的IO计数器以"批量"的方式调用大量地减少对PFS的调用以提高MySQL性能;允许用户监控长时间运行的SQL语句状态(如ALTER TABLE);封锁的一些机制等等...

改进4: SQL分析器重构。旧的分析器,使用了自上向下的分析技术[The top-down parsing style is not natural for Bison/YACC parser generators, which lead us to have overcomplicated grammar]。 新的分析器,自下向上的分析技术。优劣与详情,以及目前推进的状态,可参考: http://t.cn/RhRxuqC

改进5: MySQL优化器持续重构。把语法分析、查询优化、执行这3个阶段分离,减少耦合。包括:优化和执行阶段共用的数据结构JOIN_TAB对象的拆分,除了解耦的好处外,还能提高维护性并减少内存的使用。TABLE_LIST结构体和TABLE对象按阶段分离,好处类似上一个。

改进6: 物理查询优化技术,代价估算模型的改进。这也是一个很大的改进。更好的代价估算可以产生更准确的查询执行计划,因查询执行计划不准确而陷入查询语句优化泥潭的同学们,欢呼吧。细节可参考: http://t.cn/RhRiuiV

改进6-进一步说明: 代价估算模型的改进最值得一提的是“condition filtering in the Optimizer (WL#6635)”,对filter进行计算并依据它估算代价,使得代价计算更为精确,从而帮助优化器更好地选出花费最小的执行计划。参见:http://t.cn/RhR6qjS

改进6-进一步说明2: 代价模型允许用户动态修改一些代价模型参数以适应不同的硬件。例如,数据在不同的存储中,加载速度不同则IO代价应该不同。内存比SSD快,SSD比磁介质快。而可以为不同介质设置使用不同IO的时间花费数值,则能产生更好的代价计算值,从而产生更好的执行计划。

改进7:其他方面的改进,也非常多,如复制、安全、Gis、全文检索、数据类型、InnoDB的各种改进等等。详情可参见:http://t.cn/RhRXqQD那海蓝蓝: 改进6-进一步说明2: 代价模型允许用户动态修改一些代价模型参数以适应不同的硬件。