上篇文章记录了,Mysql慢查询日志分析及percona-toolkit的使用,如果慢查询日志没有找到问题的话,可以从数据库的角度分析下,可以使用mysql自带的诊断分析工具Query Profile,它可以分析出一条SQL语句的硬件性能瓶颈在什么地地方,比如CPU,IO等,以及该SQL执行所耗费的时间等
开启Profile功能
默认是关闭状态
开启profile功能
set profiling=1; --1是开启、0是关闭
操作一条查询时间比较长的sql
select id from tb_user where address = '北京'
用的上篇文章的数据库,,1000W条数据没走索引的全表扫描,才30多W条就14s了
查看sql语句的耗时
从这可以看到这条sql每个阶段的时长,比如打开表,初始化,锁,准备,执行,找数据…的分别的耗时,可以看出找数据的时间比较长
这个数据可以看出这条sql的硬件工作情况
一般来讲的话,硬件层面的问题,做开发也莫法,只得做一些设备上的优化