1. 执行SQL时显示执行情况
explain + SQL语句
2. 强制使用索引
select * from t force index (a) where a between 100 and 1000;
3. 慢查询日志
在 my.cnf 中:
log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log)
long_query_time=2 (记录超过的时间,默认为10s)
log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)
log-long-format (如果设置了,所有没有使用索引的查询也将被记录)
设置慢查询的阈值为后,查询时间大于该值的操作都会被记录在慢查询日志中;
set long_query_time=0;
设置为0后,之后所有的查询操作被会被记录在慢查询日志;
下图是慢查询日志中的两条记录