MySQL最新版8.0与5.7之性能对比
InnoDB行操作
有趣的是,MySQL团队关于新版本中读写性能的声明,这些图表指出了性能的显著提高,特别是在高负载服务器上。想一下MySQL 5.7和MySQL 8.0在InnoDB行操作上的区别,确实存在有很大的不同,特别是当线程数增加的时候。MySQL 8.0表明,无论工作负载如何,它都能高效地运行。 事务处理
让我先解释一下如何在基准测试中获取CPU使用率。在对数据库进行基准测试时,sysbench测试结果中不包括在此过程中使用的硬件资源的统计信息。因此,我所做的是通过创建文件的方式来创建标识,通过SSH连接到目标主机,然后用Linux命令“top”收集数据并在测试结束前进行解析,然后再次收集。然后分析出mysqld进程占用最大的CPU使用量,最后删除该标识文件。你可以查看我在github上的代码。 让我们再次讨论图表结果,似乎表明MySQL 8.0消耗了大量的CPU,超过MySQL 5.7。然而,MySQL 8.0可能必须消耗额外的CPU在新的变量配置上。例如,这些变量可能会影响您的MySQL 8.0:
在此基准测试中,具有默认值的变量将保留其默认值。由于MySQL 8.0重新设计了InnoDB写入REDO日志的方式(这是一个改进),前三个变量可配置处理重做日志的使用的CPU资源。例如,变量innodb_log_spin_cpu_pct_hwm具有CPU亲和性,这意味着如果mysqld仅绑定到4个内核,它将忽略其他CPU内核。对于并行读取线程,在MySQL 8.0中添加了一个新变量,您可以调整要使用的线程数。 结论MySQL 8.0中有许多改进。基准测试结果显示,与MySQL 5.7相比,MySQL 8.0不仅在处理读负载时,而且在读写混合的高负载下的性能都取得了令人瞩目的进步。 再来看MySQL 8.0的新特性,看起来它不仅利用了最新的软件技术(如Memcached的改进,远程管理以获得更好的DevOps工作性能等),还有硬件。例如,用UTF8MB4替换latin1作为默认字符编码。这意味着它需要更多的磁盘空间,因为UTF8在非US-ASCII字符上需要2个字节。虽然此基准测试没有利用使用caching_sha2_password的新身份验证方法,但它是否使用加密不会影响性能。一旦经过身份验证,它就会存储在缓存中,这意味着身份验证只进行一次。因此,如果您在客户端只使用一个用户,则不会出现问题,并且比以前的版本更安全。 总的来说,MySQL 8.0的性能已经远超过MySQL 5.7了。 【编辑推荐】
点赞 0 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |