2013-08-06 42 views
0

我很想知道如何使用MySQL編寫鎖定以及如何使用MySQL優先處理它們。具體來說,我想知道「低優先級寫入」鎖的優先級低於「正常」寫入鎖的優先級,還是相等。我能找到的唯一文檔指出,低優先級鎖的優先級低於讀鎖,允許首先處理讀鎖。但我找不到任何說明與其他寫入鎖相關的內容。MySQL寫鎖定優先級

這就是我正在尋找一種方法來「優先」寫入鎖,並想知道是否只是標準的低優先級鎖將做我正在尋找。

回答

0

The manual has it all

一種用於LOW_PRIORITY WRITE鎖定請求,相反,允許由其他會話後續READ鎖請求如果在LOW_PRIORITY WRITE請求等待[它們發生被滿足第一被授予]

沒有提及對WRITE鎖請求的效果,所以LOW_PRIORITY劑具有併發他們沒有影響。

Beware, though

的LOW_PRIORITY修飾符無效像MySQL 5.5.3的

And

在MySQL 5.6.5的,它已被廢棄,其使用會產生警告。改用WRITE而不用LOW_PRIORITY。

+0

感謝您對棄用說明,我錯過了閱讀手冊前。這雖然是我仍然想知道的部分:'如果一個會話發出一個LOCK TABLES語句來在已經持有鎖的時候獲得一個鎖,那麼在授予新的鎖之前,它的現有鎖將被隱式釋放。「我擔心隱式釋放先前的鎖與新的鎖之間的時間間隔。如果另一個會話在隱式釋放之前請求寫入鎖定,第二個會話是否會在第一個會話之前被授予鎖定? – orediggerco

+0

是的,無論使用「LOW_PRIORITY」。在測試表上驗證很容易。 – RandomSeed