MySQL查詢何時會被阻塞

MySQL查詢何時會被阻塞

  1. 由於沒有拿到MDL讀鎖
      可以通過show processlist命令查看線程狀態爲:Waiting for table metadata lock,這時需要找到鎖住這個表的線程,通過select blocking_pid from sys.schema_table_lock_waits,然後kill掉對應的線程即可。
  2. 被flush阻塞
      這時show processlist顯示線程的狀態爲Waiting for table flush。Flush語句用於關閉打開的表,這時可能的情況是:有一個flush tables命令被別的語句堵住了,然後它又堵住了我們的select語句
  3. 被行鎖阻塞
      通過Select lock in share mode進行查詢時

MySQL實戰45講

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章