網站源碼下載網源碼庫詳解MySQL慢查詢
2024-07-24 12:40:36
供稿:網友
打開MySQL慢查詢 MySQL慢查詢記錄日志對于跟蹤PHP+MySQL體系下的MySQL負載調優問題很有用處,比如安裝了很多Discuz!插件的用戶,這樣可以大概排查出那些插件有代碼問題。其實啟用MySQL的慢查詢日志很簡單,只需要在MySQL的配置文件里添加log-slow-queries和 long_query_time兩個參數即可。 今天有個朋友問我,就順帶記錄上來。更多的MySQL 優化信息可以查看這里:http://www.ccvita.com/category/mysql Windows下開啟MySQL慢查詢 MySQL在Windows系統中的配置文件一般是是my.ini找到[mysqld]下面加上 log-slow-queries = F:/MySQL/log/mysqlslowquery.log long_query_time = 2 Linux下啟用MySQL慢查詢 MySQL在Windows系統中的配置文件一般是是my.cnf找到[mysqld]下面加上 log-slow-queries=/data/mysqldata/slowquery.log long_query_time=2 注意 log-slow-queries = F:/MySQL/log/mysqlslowquery.log為慢查詢日志存放的位置,一般這個目錄要有MySQL的運行帳號的可寫權限,一般都將這個目錄設置為MySQL的數據存放目錄; long_query_time=2中的2表示查詢超過兩秒才記錄; 2009年09月24日更新 在my.cnf或者my.ini中添加log-queries-not-using-indexes參數,表示記錄下沒有使用索引的查詢。比如: log-slow-queries=/data/mysqldata/slowquery.log long_query_time=2 log-queries-not-using-indexes mysqldumpslow命令 /path/mysqldumpslow -s c -t 10 /database/mysql/slow-log 這會輸出記錄次數最多的10條SQL語句,其中: -s, 是表示按照何種方式排序,c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序,ac、at、al、ar,表示相應的倒敘; -t, 是top n的意思,即為返回前面多少條的數據; -g, 后邊可以寫一個正則匹配模式,大小寫不敏感的; 比如 /path/mysqldumpslow -s r -t 10 /database/mysql/slow-log 得到返回記錄集最多的10個查詢。 /path/mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log 得到按照時間排序的前10條里面含有左連接的查詢語句。 SHOW VARIABLES SHOW VARIABLES是查看MySQL的配置參數,還可以使用類似SHOW VARIABLES LIKE ‘Key%’ SHOW PROCESSLIST SHOW PROCESSLIST是查看當前正在進行的進程,對于有鎖表等情況的排查很有用處。一般情況下,打開MySQL的慢查詢記錄 同樣有利于排查。 SHOW OPEN TABLES SHOW OPEN TABLES是顯示當前已經被打開的表列表。 小結 使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語句,對MySQL查詢語句的監控、分析、優化是MySQL優化的第一步,也是非常重要的一步。