0
我的MySQL數據庫(Innodb)擁有大量併發的長時間運行的INSERT查詢。在mysql中睡眠查詢?
查詢來自我的node.js應用程序,其中我正在使用node-mysql綁定,特別是使用'pool()'進行連接池。
當我通過mytop監視查詢時,在「睡眠」(運行時間超過600秒)中看到大量長時間運行的連接。
我很喜歡這是一個查詢掛起,由於行鎖定等,或者這些只是來自連接池的連接?
我的MySQL數據庫(Innodb)擁有大量併發的長時間運行的INSERT查詢。在mysql中睡眠查詢?
查詢來自我的node.js應用程序,其中我正在使用node-mysql綁定,特別是使用'pool()'進行連接池。
當我通過mytop監視查詢時,在「睡眠」(運行時間超過600秒)中看到大量長時間運行的連接。
我很喜歡這是一個查詢掛起,由於行鎖定等,或者這些只是來自連接池的連接?
上thread command values MySQL文檔(這是你的cmd
領域的等價物)說
睡眠
線程正在等待客戶端發送一個新的聲明吧。
這意味着任何具有sleep
狀態的連接都在等待發送新的指令,目前它不處理任何事情。如果連接繁忙,則您會在cmd
字段中看到不同的值,並在state
字段中看到更詳細的說明。後者的可能值在MySQL文檔General Thread States中描述(你也可以找到與等待鎖相關的狀態)。
基於上述信息,我不能告訴你這些睡眠連接是否來自連接池(你可以根據IP地址來做到這一點),但他們絕對沒有被卡住的查詢。
要澄清,這些不表示查詢由於行鎖定而卡住? –
查看我答案的最後一段。 – Shadow
@Thanks - 這些睡眠連接是否消耗CPU或內存資源?換句話說,我應該擔心還是可以離開他們? –