我有一個從各種資源中收集數據的mysql數據庫。
爲了顯示來自不同表格的一些統計數據,我運行了一個長查詢,大約需要幾分鐘才能執行。
查詢鎖定了一些表,因此我無法寫入這些表。
這些表是InnoDB引擎。我試了幾個選項,包括:
1.增加鎖定超時
2.添加SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
和COMMIT;
(link)
3.添加索引表(進行的查詢的運行速度更快,但我仍然得到一個鎖定超時錯誤)mysql - 長查詢執行時間鎖表
如何在不鎖定表的情況下執行長查詢?
什麼是查詢? – Sebas
這是一羣SELECT年代,JOIN的,SUM和更多... –
你肯定有一個鎖?請'SHOW PROCESSLIST'和'SHOW ENGINE INNODB STATUS'。選擇不鎖定任何東西。但他們可能*等待*爲鎖釋放 – Sebas