TL;DR:我希望我的数据库中有一个表作为优先级队列(这里是ID上的一个分钟队列),是否有任何免费的(用于商业用途的) DBMS可以解决我的问题?查询会是什么样的呢?
我希望有许多并发用户从一个表中选择一个行,例如,我有这个表
+------+-------+--------+------------+
| ID | Col 1 | Col 2 | Processed |
+------+-------+--------+------------+
| 1000 | data | data | False |
+------+-------+--------+------------+
| 1001 | data | data | False |
+------+-------+--------+------------+
| 1002 | data | data | False |
+------+-------+--------+------------+如果我有3个用户,我希望执行原子SELECT和UPDATE,这样第一个查询将从具有最低ID的行返回Col 1和Col 2,并将Processed标记为True,这样下一个查询将返回带有ID = 1001的行。
预计该表将很小,即最多100,000行,队列预计将在大约8小时内清空(大约每秒3-4个查询,峰值可能是每秒50次左右的查询)。我习惯了PostgreSQL/MySQL,并曾短暂地使用过MongoDB。
我应该如何设计我的系统来处理这个问题呢?查询会是什么样的呢?一张桌子锁能被注意到吗?
https://stackoverflow.com/questions/35080611
复制相似问题