Mysql慢SQL与索引案例
2016-05-30 23:48
351 查看
写在最前
关于慢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
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
关于慢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
相关文章推荐
- MySQL中的全文检索
- MySQL8:连接查询
- mysql BLOB字段转String的方法
- Mysql数据库分库和分表方式(常用)
- 跟我一起学习MySQL技术内幕(第五版):(第三章学习日记12)
- 新装的mysql,直接安装板
- MySQL常用命令行操作大全
- mysql的安装
- MySQL 加锁处理分析
- MySQL 创建数据库的两种方法
- mysql order by rand() 效率优化方法
- mysql分页原理和高效率的mysql分页查询语句
- mysql 的密码重置
- 安装Mysql碰到的一些问题。
- MySQL常用函数整理
- mysql中的null值和空值区别
- MySQL按时间分组
- mysql集群(二)
- MySQL中函数CONCAT及GROUP_CONCAT
- 让sql语句不排序,按照in语句的顺序返回结果mysql:SELECT*FROMEVENTWHER