mysql中最影響速度的就是那些查詢非常慢的語句,這些慢的語句,可能是寫的不夠合理或者是大數據下多表的聯合查詢等等,所以我們要找出這些語句,分析原因,加以優化。
1)、查看默認慢查詢的時間:
mysql> show variables like "%long%"; +--------------------+-----------+ | Variable_name | Value | +--------------------+-----------+ | long_query_time | 10.000000 | | max_long_data_size | 1048576 | +--------------------+-----------+ 2 rows in set (0.24 sec)2)、修改慢查詢時間,建議設置為5秒以內,不要設置過大,不然就失去了慢查詢的作用了。
mysql> set global long_query_time=2; Query OK, 0 rows affected (0.25 sec)這裡設置慢查詢時間為2秒。
3)、查看慢查詢是否開啟
mysql> show variables like "%slow%"; +---------------------+-----------------------------------------+ | Variable_name | Value | +---------------------+-----------------------------------------+ | log_slow_queries | OFF | | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | /usr/local/mysql/var/li411-195-slow.log | +---------------------+-----------------------------------------+ 4 rows in set (0.23 sec)我們可以看到慢查詢未開啟。
4)、開啟慢查詢
mysql> set slow_query_log='ON'; ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL報錯了,這裡需要注意一下的是設置時需要加上 global 關鍵字。
mysql> set global slow_query_log='ON'; Query OK, 0 rows affected (1.11 sec)再次查看是否開啟:
mysql> show variables like "%slow%"; +---------------------+-----------------------------------------+ | Variable_name | Value | +---------------------+-----------------------------------------+ | log_slow_queries | ON | | slow_launch_time | 2 | | slow_query_log | ON | | slow_query_log_file | /usr/local/mysql/var/li411-195-slow.log | +---------------------+-----------------------------------------+ 4 rows in set (4.04 sec)我們可以看到mysql 慢查詢已經生效了。
long_query_time = 2 log-slow-queries = /usr/local/mysql/var/localhost-slow.log重啟mysql服務即可。