Mysql 我应该使用表锁还是事务?
我有两个表,一个叫做user,存储用户,另一个叫做process,存储更新用户的活动进程列表 我想做的是能够选择50个过期用户,通过在进程表中插入一条记录来锁定他们,该记录具有我正在更新的用户id范围,以便在启动第二个进程时,它不会开始处理相同的用户 总而言之:Mysql 我应该使用表锁还是事务?,mysql,transactions,table-locking,Mysql,Transactions,Table Locking,我有两个表,一个叫做user,存储用户,另一个叫做process,存储更新用户的活动进程列表 我想做的是能够选择50个过期用户,通过在进程表中插入一条记录来锁定他们,该记录具有我正在更新的用户id范围,以便在启动第二个进程时,它不会开始处理相同的用户 总而言之: 在流程表中选择上次处理的id 在用户表中选择50 id>上次处理的id 在流程表中插入一条新记录,其ID范围为我将要处理的ID范围 我想确保如果同时启动2个进程(P1和P2),那么每个进程都会连续执行3个步骤。i、 e: P1步骤1
- P1步骤1
- P1步骤2
- P1步骤3
- P2步骤1
- P2步骤2
- P2步骤3
- P1步骤1
- P2步骤1
- P1步骤2
- 等等
谢谢大家! 行级锁。InnoDB的优点是它支持行级锁。您需要锁定对该事务更新感兴趣的记录。您应该在每个批处理中使用一个事务,这样您可以在完成后积极地释放它们
请参阅:谢谢您的回答。问题是每次更新都需要很长的时间,我不想在数据库中把任何东西锁定那么长时间。我只是在寻找一种方法,以确保我的3个步骤是连续执行。