我有一個表格「命令可以做」與狀態(「麥克羅公司一直供應」,「加工」,「完成」)行鎖的更新狀態
我有幾個實例(亞馬遜EC2)與守護問爲「要做的命令」。
守護進程請求狀態爲「toprocess」的行,然後進行處理,並在每個循環結束時將狀態更改爲「完成」。
問題是,在開始該循環之前,我需要將所有行'toprocess'更改爲狀態'processing',所以其他實例不會採用相同的行,從而避免衝突。
我讀過有關InnoDB的行鎖,但我不明白他們很好...
SELECT *從那裏狀態=「麥克羅公司一直供應」 然後我需要這些結果的ID的命令,並將狀態更新爲'處理',鎖定這些行直到它們更新。
我該怎麼辦?
謝謝
嗨,...表鎖定太多「沉重」(思考在應用程序的其餘部分)...你告訴的第二個選擇似乎解決方案...我怎麼能做到這一點? – FlamingMoe 2011-02-11 17:22:18