解決方式
數(shù)據(jù)庫(kù)的某個(gè)大表突然無(wú)法查詢,是因?yàn)閿?shù)據(jù)庫(kù)表中有進(jìn)程阻塞或死鎖了。
根據(jù)下列查詢語(yǔ)句,查詢出超時(shí)阻塞的sql進(jìn)程,kill掉就行了。
-- 1. 查看運(yùn)行時(shí)間最長(zhǎng)的進(jìn)程(特別是UPDATE/DELETE)
SELECT
ID,
USER,
HOST,
DB,
COMMAND,
TIME AS exec_seconds,
STATE,
LEFT(INFO, 200) AS query_snippet,
CONCAT('KILL ', ID, ';') AS kill_command
FROM information_schema.PROCESSLIST
WHERE COMMAND != 'Sleep'
AND TIME > 10 -- 運(yùn)行超過(guò)10秒的
ORDER BY TIME DESC
LIMIT 20;