在执行性能测试的时候,问题总千奇百怪的。我这里整理了一些经常使用的性能测试时查看问题的方法。数据库
一.SQL语句没有引用索引:服务器
执行性能测试时,服务器的运行状况下:网络
日志没有打印错误,可是TPS很低,如只有100-120(单个接口请求的性能测试,TPS通常会在550-60000这样,除非程序很复杂,那么TPS会小一些)。这种状况下应该先查看SQL的语句是否是存在问题:性能
如:测试
查询语句,是否有索引,索引有没有起到做用;(是查询语句还要看数据表中的总数据)优化
案例:我先前测试的时候,有个查询接口就是存在这样的问题,TPS很低,是由于没有索引致使的,加入索引后,TPS从之前的110到6000这样。spa
二.SQL语句索引没有起到做用:日志
执行性能测试时,服务器的运行状况下:code
CPU 很高的监控图blog
日志没有打印错误,可是TPS很低,须要查看索引没有起到做用,是否遍历了不少无关的表格数据。
案例:我先前测试的时候,部分接口就是存在这样的问题,TPS很低,CPU很高,有索引,可是SQL查询的语句写得有问题,遍历不少数据,致使引用的索引失效了。
能够用EXPLAIN来统计一个查询,SQL会遍历多少次的问题,程序的语句致使大量的表扫描。使用的索引区分度低,表达式中是否带非,致使索引失效,rows的值越大,说明遍历次数越多:
EXPLAIN SELECT * FROM tb_hlf_pos_cashier where account=’ XXXXX ’;
(以上都是在性能测试的时候,SQL语句优化后,性能提升的途径。固然我只是找到问题,具体的SQL语句优化,是开发的同事优化的,因此这里我也只能讲解我了解的知识,不少详细的优化代码我没研究过)