MySQL 5.7 新特性详解(3)

InnoDB 更快的并行数据刷新。扫描刷新一批队列数据的时候,减少了需要检索的页面数目,从而提高了页面更新的速度(WL#7047)。检索的时间复杂度已经从 O(n*n) 降低到了 O(n)。与此同时,利用多线程的多页清除技术实现了并行的数据刷新(WL#6642)。这使得数据库在多核系统上的扩展性和吞吐量均大大得到增强的同时,避免了数据刷新成为瓶颈。最后,改善了自适应的刷新算法以及其他相关机制,来达到更加一致和平滑的吞吐量。

加速连接处理。在某些应用场景下(例如:PHP 应用程序)客户的连接常常只有很短的生命周期,有时只用执行单次的查询。这意味着,用在处理连接和断开连接的时间的长短严重关系到整体的应用程序的运行性能。在 5.7 下,压缩了线程初始化和网络初始化的负载成为一个普通的线程(WL#6606)。取而代之的是 MySQL 双倍的处理高频的连接与断开连接的能力,从每秒钟 26K 次的处理能力提升至每秒钟 56K 次。也可以参考 Jon Olav Hauglid 的一篇文章“Improving connect/disconnect performance“

加载块数据的性能的提升。为了创建索引所进行的块数据的加载,(WL#7277)。通过实现块数据的索引排序,从而加速了 CREATE INDEX 运算操作符的实现。在此之前,InnoDB 循环遍历基表,为每访问一次基表里的每条记录创建一个索引。在此次更新之后,InnoDB 可以一次从基表读取多条记录,并且通过索引的键值排序这些记录,从而由单次的块操作下创建出一整块记录的索引集。

在线操作

“时刻在线”的特性对于所有完美的 web 解决方案而言都是必需的。对于数据库管理员或者网站的开发运维人员来说,在不影响前台服务的条件下调试和拓展其后台数据库系统是极其重要的。因此,我们要确保 MySQL 在这一领域处于领先地位。在 5.7 下,我们提供如下这些:

提供了确保全局事务始终在线是方式(WL#7083)。因此,读写的操作在此过程中是可行的,并且服务器不需要同步或者重启。在此次更新之前,用户不得不停止所有的更新操作,同步所有的服务器,并且同时重启服务器。这意味着,为了确保全局事务,必须提前规划好服务器的宕机时间。可以参考 Sven Sandberg 的文章”Enabling Global Transaction Identifiers Without Downtime in MySQL 5.7.6“(利用 MySQL 5.7.6 在不宕机的情况下确保全局事务)

英文原文:What’s New in MySQL 5.7? (Generally Available)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2fb65f52b3da1a8e6502b8b9267825d0.html