我有一個包含唯一產品ID列表的MySQL表(表A)。利用此表的應用程序使用多個線程,每個線程選擇一個錶行(最上面),使用API獲取產品數據並將其更新到不同的表(表B)。一旦完成,該線程將刪除表A中相應的產品ID行並選擇另一個進行工作(循環直到表A中的所有行都已刪除,而B表已更新)。mysql - 爲選擇查詢鎖定行?
如何防止我的應用程序的線程意外地在表A的同一行上工作?有沒有辦法鎖定一行被選中?
示例: 應用程序的線程1從表A選擇行-1。從API獲取並更新所有相關數據到表B需要大約10到15秒的時間。當發生這種情況時,線程2將觸發並檢查表A以選擇要處理的行。在這種情況下,我只需要鎖定行1,以便它不會線程2不會看到/讀取它,而是選擇第2行。
看到的交易,樂觀/悲觀鎖等 – biziclop