标签:
MySQL支持慢查询日志,记录查询时间过长的SQL语句。通过日志能发现需要优化的主体。
开启慢查询日志功能:修改my.cnf文件,并重启
log-slow-queries=/var/lib/mysql/mysql-slow.log long_query_time=2
或者修改数据库
show variables like ‘%query%‘; set @@global.slow_query_log=ON; set @@global.slow_query_log_file=‘/var/run/mysqld/mysqld-slow.log‘; select sleep(11); #慢查询,将会被记录到日志文件
explain查询执行计划,返回10列信息。
using index:从索引中返回数据。这是令人满意的结果,代表SQL执行性能较高。
using where:通过索引来进行范围查找,跟返回数据是否从索引无关。
using filesort:需要优化。
using temporary:需要优化。
查询类型
all:全表扫描
index:按索引次序扫描表,其实也是扫描全表。比all强在避免排序。
range:以范围的形式搜索索引。
ref:非唯一索引访问。
eq_ref:唯一索引访问。在join运算中,如果两边都是唯一索引列,就属于这种类型。
const,system
null
可能用到的key
实际用到的key
所需要扫描的函数的估值
标签:
原文地址:http://my.oschina.net/gaohongtian/blog/493523