2012-03-20 50 views
7

這個問題很簡單,但我找不到一個確切的答案: 在myisam數據庫中,如果php文件鎖定一個表(使用原子操作,如INSERT)並且另一個php文件嘗試訪問同一張桌子(閱讀或寫作)?Mysql併發性:如果訪問一個鎖定表會發生什麼?

現在,雖然很明顯第二個會話將無法訪問該表,但到底發生了什麼?它是否會返回某種錯誤?它是否在隊列中等待直到它能夠訪問它?

回答

6

第二個連接將等待鎖定釋放。

於MyISAM任何寫(插入/更新/刪除)將鎖定表,

然而與INNODB表鍵入原子操作將只鎖定受影響的行

+0

完善。第二個連接是否有某種超時? – PixelSapiens 2012-03-20 12:30:17

+0

無論在mysql配置中定義的連接超時或您正在使用的應用程序(例如php.ini mysql timeout是60秒)。連接將等到這個時間,然後下降(顯然) – 2012-03-20 13:08:31

+0

完美!非常感謝! – PixelSapiens 2012-03-20 14:20:29

相關問題