我有一個長期運行的SELECT語句進行MYISAM表。這些語句是否對正在讀取的表造成鎖定?如果是這樣,你如何阻止發生鎖?爲MYISAM錶停止表鎖
根據https://dev.mysql.com/doc/refman/5.7/en/internal-locking.html:
MySQL使用表級鎖對MyISAM,MEMORY和MERGE表, 只允許一個會話更新一次這些表。這個鎖定級別使得這些存儲引擎更適合於只讀應用程序, 只讀應用程序或單用戶應用程序。
這是否也意味着SELECT
語句創建鎖?
@joanalo不,它不是。 'SELECT'發佈共享讀鎖,'UPDATE'和朋友發佈寫鎖。 – EJP
MyISAM現在不是最好的選擇,所以如果你可以切換到InnoDB,它可能是最好的選擇。調整,支持MVCC和擁有日誌更容易,這意味着如果服務器崩潰,它通常不會崩潰。 – tadman