MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。2015年最重磅的当属MySQL-5.7的发布,号称160万只读 QPS,大有赶超NoSQL趋势。新版本的MySQL-5.7在测试平台上每秒只读 QPS比MySQL-5.5近乎提升了两倍。同时该版本在数据库其他方面也得到不少改进:
看到MySQL-5.7官方介绍中如此多的功能优化和性能提升,不免让人有些激动。这一期的评测报告就着重针对MySQL-5.7在SELECT和UPDATE 中的性能,通过与MariaDB-5.5的对比,展示下新版本MySQL的性能提升。
①MySQL-5.7对无索引字段的处理速率高于MariaDB-5.5
在许多针对数据库的压力测试中,都只关注于吞吐量的数值,追求高吞吐量的过程中,往往在进行SELECT测试时只针对建立过索引的字段进行测试,而忽略了在实际工作环境中针对数据库操作的不定性和复杂性因素所导致的用户(或者管理员)对数据中的读操作不仅仅局限于使用有索引的字段(出于成本、存储空间、效率等因素的考虑,为所有字段建立索引是不科学、低性价比的),在对未建立索引进行读操作时,系统不得不对表进行全扫描,其对系统整体的吞吐量将造成很大影响,但考虑到木桶效应(一只木桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板),综合考虑有索引和无索引情况下数据库的效率才能综合的反映出数据库所具有的真实用户体验值,其实验数据才是更贴近实际工作环境的,更加具有参考价值。
针对无索引字段的测试结果(如下图所示),根据MySQL在无索引字段查找时进行全表扫面的原理,采用“扫描速率”作为衡量其整体性能的评价标准。
②MySQL-5.7索引查询吞吐率在高并发时的性能约为MariaDB-5.5的2倍
MySQL-5.7索引查询的可用性、稳定性均高于MariaDB-5.5
Thread Pool功能有效提高数据库在高并发时的性能近2倍
索引是对数据库表中一列或多列的值进行排序的一种结构。使用索引可快速访问数据库表中的特定信息。
什么是Thread Pool?MySQL的每个连接上来都要创建一个线程来执行语句。这样每一个新的连接进来即会创建一个新的线程,这种动作对MySQL本身压力比较大。Thread Pool是提供一种线程代理的模型执行每个连接的语句。而MySQL内部维护一个可能接受的线程总数,减少线程太多在CPU切换等方面的压力。但Thread Pool仅在MySQL的商业化版本中作为plugin的官方功能支持,MariaDB也实现了这一功能。
针无索引字段的测试结果(如下图所示),根据MySQL查找索引字段时原理,采用“吞吐量”作为衡量其整体性能的评价标准。
①MySQL-5.7中UPDATE的吞吐率、稳定性、可用性均高于MariaDB-5.5
MySQL-5.7UPDATE性能随负载增加的衰减趋势优于MariaDB-5.5
UPDATE作为数据库操作中最为频繁的操作之一,其操作由于涉及到数据查询、数值更新以及数据存储,该操作性能的优劣会对对数据库的用户体验和性能发挥造成重要影响。
针对不同版本和配置的数据库(MySQL-5.7、MariaDB-5.5、MariaDB-5.5_TP),UPDATE测试如下图所示,采用“吞吐量”作为衡量其整体性能的评价标准。
通过以上测试数据和分析说明,给出如下结论:
通过以上测试结论,给出如下建议:
【数据库评测报告】第一期:MySQL-5.7的主要内容就是以上这些了,测试在进行过程中由于网络条件、数据库配置等因素的影响,可能无法发挥出TS90机器的最大性能,但在同一配置和运行环境在针对MariaDB-5.5和MySQL-5.7的测试,在一定程度上对于数据库选型具有参考价值。还想了解测试的参数和细节的朋友可以继续往下读。
设备型号 | 配置描述 | CPU型号 |
---|---|---|
TS90 | 2个12核CPU,256G内存,12*800G SSD,万兆网卡 | E5-2670v3 |
①数据库版本
测设设备 | 数据库版本 |
---|---|
TS90-1 | MariaDB-5.5 |
TS90-2 | MySQL-5.7 |
②数据库配置
①测试工具
mysqlslap是MySQL自带的benchmark基准测试工具,该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。
②测试流程
建立测试数据库database → 在数据库中建立结构相同的多个table → 利用脚本向table中分别插入一定数量的数据(1GB、50GB、100GB、250GB) → 利用mysqlslap对相应query语句进行测试(采用rand()随机取值并且多次测试取均值) → 结果数据的分析
③测试方案
④测试表结构
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有