案例:Mysql慢SQL与加索引前后对TPS的影响

写在最前

关于慢sql的开启与配置查看之前我整理的文章:

http://www.cnblogs.com/hanxiaobei/p/5515624.html

前提准备:

tomcat7.x

mysql--Perfteach

jmeter

测试接口:192.168.1.102:8081/PerfTeach/SlowQuery?cardNO=1000009

脚本编写:

单接口的测试jmeter比较方便,所以本文就用jmeter进行测试

环境搭建及测试:

1、配置Perfteach包 连接本地数据库(Perfteach库有一万条数据)

2、启动tomcat

 ./startup.sh & tail -f ../logs/catalina.out

3、浏览器验证接口是否通,看到如下界面为接口已通

本文只做cardno字段的索引测试

4、jmeter设置为20线程,1秒启动,循环永远

同时,服务器进行监控

5、没有添加cardno字段索引的时候,测试的结果TPS大概在120左右。为如下图所示

同时,如果开启了慢查询日志,会看到不断的往日志里添加数据。如下图文件大小不断增加

具体查看哪些SQL的执行有问题,打开写在最前的链接地址。

6、添加cardno字段索引的时候,测试的结果TPS大概在600左右。为如下图所示

同时,慢查询日志的大小不会有变化。证明索引起作用了

7、下图为开始添加了cardno索引而后去掉cardno索引的TPS截图:

下降很明显。

本篇文章只是从TPS的角度考虑有无索引的情况对比分析。

还有 在有索引的前提下,CPU和内存是怎样的状态;在无索引的前提下,CPU和内存又是怎样的状态。

MySQL优化:http://zhanghongxin.blog.51cto.com/11255031/1851374

原文地址:https://www.cnblogs.com/hanxiaobei/p/5544419.html