mysql> select count(*) from information_schema.processlist where COMMAND != 'Sleep'; mysql> select * from information_schema.processlist where COMMAND != 'Sleep' limit 5;
慢查询 查看慢查询时间定义
1 2 3 4 5 6 7 8 9 10
mysql> show variables like "long%"; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 10 | +-----------------+----------+ 1 row in set (0.00 sec)
mysql> set long_query_time=1; Query OK, 0 rows affected (0.00 sec)
开启“慢查询”记录功能
1 2 3 4 5 6 7 8 9 10 11 12
mysql> show variables like "slow%"; +---------------------+------------------------------------+ | Variable_name | Value | +---------------------+------------------------------------+ | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | /opt/mysql/data/localhost-slow.log | +---------------------+------------------------------------+ 3 rows in set (0.00 sec)
mysql> set global slow_query_log=ON; Query OK, 0 rows affected (0.01 sec)
设置慢日志导出方式为Table或者File
1 2 3 4 5 6 7 8 9 10
mysql> show variables like "log_output"; +---------------------+------------------------------------+ | Variable_name | Value | +---------------------+------------------------------------+ | log_output | FILE | +---------------------+------------------------------------+ 3 rows in set (0.00 sec)
mysql> set global log_output=TABLE Query OK, 0 rows affected (0.01 sec)
explain输出执行计划对sql进行分析
1
mysql> explain select uid from user where mo=132342342 limit 0,1;
出现以下结果就需要优化了:
出现了Using temporary;
rows过多,或者几乎是全表的记录数;
key 是 (NULL);
possible_keys 出现过多(待选)索引。
soar小米SQL分析工具 SOAR(SQL Optimizer And Rewriter)是一个对SQL进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护。