我有一个单一的过程,可以查询表以获取PROCESS_IND=’N’的记录,进行一些处理,然后将其更新PROCESS_IND为’Y’。
PROCESS_IND
我想允许该过程的多个实例运行,但不知道避免并发问题的最佳实践是什么。
我应该从哪里开始?
我将使用的模式如下:
UPDATE TasksTable SET Lockedby =(我的ID),locktime = now()WHEREBYBY IS IS NULL ORDER BY ID LIMIT 10
其中10是“批量大小”。
LIMIT 10是特定于MySQL的,但其他数据库具有等效功能。导入ORDER BY可以避免查询不确定。