我有一个包含唯一产品ID列表的MySQL表(表A)。利用此表的应用程序使用多个线程,每个线程选择一个表行(最上面),使用API获取产品数据并将其更新到不同的表(表B)。一旦完成,该线程将删除表A中相应的产品ID行并选择另一个进行工作(循环直到表A中的所有行都已删除,而B表已更新)。mysql - 为选择查询锁定行?
如何防止我的应用程序的线程意外地在表A的同一行上工作?有没有办法锁定一行被选中?
示例: 应用程序的线程1从表A选择行-1。从API获取并更新所有相关数据到表B需要大约10到15秒的时间。当发生这种情况时,线程2将触发并检查表A以选择要处理的行。在这种情况下,我只需要锁定行1,以便它不会线程2不会看到/读取它,而是选择第2行。
看到的交易,乐观/悲观锁等 – biziclop