在數據庫管理的過程中,我們時常需要查詢近期執行的SQL語句,這對于診斷問題和性能優化都很有幫助。MySQL也提供了一些方式來查詢執行過的SQL語句,接下來我們就來看一下這些方法。
1. 使用mysql命令行工具
mysql>show processlist;
這個命令可以展示當前正在執行的sql語句以及執行的會話信息,包括會話ID、用戶、執行時間、狀態等。如果要查詢歷史執行的SQL語句,可以結合使用SHOW FULL PROCESSLIST和SLEEP命令:
mysql>SHOW FULL PROCESSLIST; mysql>SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND LIKE 'Sleep';
2. 使用general log
mysql>SET GLOBAL general_log = 'ON'; mysql>SET GLOBAL log_output = 'TABLE';
這個命令可以打開general log,記錄MySQL服務器上的所有SQL語句和會話,然后我們可以通過查詢mysql.general_log表來查看執行過的SQL語句。
3. 使用slow query log
mysql>SET GLOBAL slow_query_log = 'ON'; mysql>SET GLOBAL long_query_time = 0;
這個命令可以打開slow query log,記錄執行時間超過long_query_time設置的SQL語句。我們可以通過查詢mysql.slow_log表來查看執行過的慢SQL語句。
總之,MySQL提供了多種方式來查詢執行過的SQL語句,我們可以根據具體的需求選擇使用哪一種方式。