3 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個贊
您可以非常輕松地將每個查詢記錄到日志文件中:
mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+----------------------------+
| Variable_name | Value |
+------------------+----------------------------+
| general_log | OFF |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
mysql> SET GLOBAL general_log = 'ON';
進(jìn)行查詢(在任何數(shù)據(jù)庫上)。Grep或其他檢查/var/run/mysqld/mysqld.log
那別忘了
mysql> SET GLOBAL general_log = 'OFF';
否則性能將直線下降,您的磁盤將滿!

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個贊
即使答案已經(jīng)被接受,我還是想介紹一下可能是最簡單的選擇:
$ mysqladmin -u bob -p -i 1 processlist
這將每秒在屏幕上顯示當(dāng)前查詢。
-u 您要執(zhí)行命令的mysql用戶
-p 提示您輸入密碼(因此您不必將其保存在文件中或?qū)⒚铒@示在命令歷史記錄中)
i 時間間隔(以秒為單位)。
使用該--verbose標(biāo)志顯示完整的進(jìn)程列表,并顯示每個進(jìn)程的整個查詢。(謝謝,nmat)
可能有一個缺點(diǎn):如果快速查詢在您設(shè)置的時間間隔之間運(yùn)行,則可能不會顯示。IE:我的間隔設(shè)置為一秒,如果有一個查詢需要花費(fèi).02幾秒鐘來運(yùn)行并且在間隔之間運(yùn)行,您將看不到它。
當(dāng)您想快速檢查正在運(yùn)行的查詢而不必設(shè)置偵聽器或其他任何內(nèi)容時,最好使用此選項(xiàng)。
添加回答
舉報(bào)