在使用MySQL時(shí),我們可能需要查看最近執(zhí)行的SQL,以了解數(shù)據(jù)庫操作的情況和調(diào)試程序。下面介紹兩種方法供參考。
方法一:使用SHOW PROCESSLIST命令。該命令可以查看當(dāng)前MySQL服務(wù)器上的所有活動(dòng)線程,包括其執(zhí)行的SQL語句。
SHOW PROCESSLIST;
執(zhí)行上述代碼后,會(huì)返回一個(gè)結(jié)果集,其中包含每個(gè)活動(dòng)線程的進(jìn)程ID、用戶、主機(jī)、數(shù)據(jù)庫、狀態(tài)和當(dāng)前執(zhí)行的SQL語句(如果有)。如果有很多活動(dòng)線程,可以使用WHERE子句篩選所需的線程。
SHOW PROCESSLIST WHERE db='example';
該命令會(huì)僅列出當(dāng)前正在操作example數(shù)據(jù)庫的線程。
方法二:使用MySQL慢查詢?nèi)罩?。慢查詢?nèi)罩臼荕ySQL記錄所有執(zhí)行時(shí)間超過指定閾值的SQL語句的功能。啟用慢查詢?nèi)罩竞螅梢苑奖愕夭榭醋罱鼒?zhí)行的SQL語句。
需要在MySQL配置文件中啟用慢查詢?nèi)罩竟δ?,并指定記錄的SQL執(zhí)行時(shí)間閾值和日志存儲(chǔ)路徑。配置文件中的相關(guān)參數(shù)如下:
slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow_query.log long_query_time = 5
上述配置表示啟用慢查詢?nèi)罩?,并記錄?zhí)行時(shí)間超過5秒的SQL語句,日志文件保存在/var/log/mysql/slow_query.log文件中。如果需要查看慢查詢?nèi)罩荆梢允褂妹钚泄ぞ呋蛉罩痉治龉ぞ摺?/p>
以上兩種方法都可以幫助我們查看最近執(zhí)行的SQL語句,但各有優(yōu)缺點(diǎn),具體選擇需要根據(jù)實(shí)際情況來判斷。