趴一趴网络上的各种性能测试结论

关于网上的各种性能测试帖子,我想说以下几点:

1、为了使性能测试更加的客观、实际,应该说明针对什么场景进行测试,查询、还是修改,是否包含了主键,包含了几个索引,各自的差别是什么。因为不同的mysql分支,之所以存在是因为有其解决的点存在,而不是为了山寨而山寨;更有甚者,甚至直接拿pg进行测试得出结论;

单从TPS高低来看没有什么意义,对于每个业务场景,要看相对值而不是绝对值,因为每一个Transaction的复杂度是不同的,对于一些业务,一个Transaction中有多达上百个SQL语句。对于另一些业务,可能就一个基于主键的查询。因此抛开场景讨论TPS的高低自然没有意义。

2、测试所用硬件应该具有实际代表性,很多的测试用vm,1g,2g的内存,n旧的cpu或者笔记本的cpu进行测试,这种测试根本就没有典型意义;实际的生产机器再不济用公有云,那也得intel e系列cpu,企业级硬盘等等,很多服务器还有BBU,这些都会巨大的影响不同分支的表现;

3、服务器参数设置,percona,mariadb都有相对于oracle mysql的额外参数控制,这些参数的开启与否也会影响性能,而且在生产中可能会有不小的影响;清一色采用相同的参数设置而去测试,也是不合理的。

4、其次,应该基于可比性测试。例如SQL数据库应该使用其JSON实现和NoSQL数据库进行各种TPC-X测试,而不能采用对应JSON的二维表实现,毕竟之所以选择NoSQL,最主要的原因之一就是弱模型化。

so,各位同学在参考这类信息时,应该更多的留心结论所基于的上下文和各种假设说明。

posted @ 2016-07-14 09:03  zhjh256  阅读(212)  评论(0编辑  收藏  举报