为数据库中的每个 ID 维护一个字符串队列
Maintain a Queue of Strings for each ID in Database
我有一个 MySQL table,其中有一个 ID 列。它是一个自动递增的整数,是 table.
的主键
我需要为我的 table 中的每一行维护一个字符串(标签)队列(对于您可以说的每个 ID,因为这是主键)。
例如:- ID = 1 的队列可以是 'hello'、'idontknow'、'bye'
ID = 2 的队列可以是 'idontknow'、'whoareyou'、'bye'
队列的最大长度可以达到 10。
我服务器上的周期性脚本运行 每次都会从队列中删除一个成员(字符串),用于所有 ID。并将剩余的更新为table。例如:对于 ID = 1,'hello'、'idontknow'、'bye'、'hello' 将被删除,更新后的列值为 'idontknow'、'bye'.
所有这一切都在大规模发生。单击一下,可以将新成员(字符串)添加到 table.
中所有行的队列中
管理此问题的最佳方法是什么?我是否应该在我的 table 中有一列(队列中以逗号分隔的成员字符串),每次都向队列(列)添加一个成员?并在检索时删除成员并更新列中的更新值。
或者我应该在数据库中有单独的 table,每个 ID 会有多行。这些行将单独包含队列的成员。在这种情况下,可能会同时发生 10k 次插入。在检索时,可能会同时发生 10k 次删除。
你有什么建议?哪种方式更具可扩展性?
第二种方法的数据库结构:
客户Table
身份证、姓名
现在需要为另一个 table 中的每个客户维护队列。
队列Table
ID(这个table的主键), CustomerID(来自Customer Table的外键),
String(队列中成员的字符串)
因此我需要通过 CustomerID 从队列 table 中获取数据。
您可以将 table 更改为:
id | CusomterID | string
---+------------+----------
1 | 1 | hello
2 | 1 | idontknow
3 | 1 | bye
4 | 2 | something
那么你的整个table就是队列。它使读取队列中的下一个作业变得非常简单,并且使更新队列变得非常简单。
我有一个 MySQL table,其中有一个 ID 列。它是一个自动递增的整数,是 table.
的主键我需要为我的 table 中的每一行维护一个字符串(标签)队列(对于您可以说的每个 ID,因为这是主键)。
例如:- ID = 1 的队列可以是 'hello'、'idontknow'、'bye'
ID = 2 的队列可以是 'idontknow'、'whoareyou'、'bye'
队列的最大长度可以达到 10。
我服务器上的周期性脚本运行 每次都会从队列中删除一个成员(字符串),用于所有 ID。并将剩余的更新为table。例如:对于 ID = 1,'hello'、'idontknow'、'bye'、'hello' 将被删除,更新后的列值为 'idontknow'、'bye'.
所有这一切都在大规模发生。单击一下,可以将新成员(字符串)添加到 table.
中所有行的队列中管理此问题的最佳方法是什么?我是否应该在我的 table 中有一列(队列中以逗号分隔的成员字符串),每次都向队列(列)添加一个成员?并在检索时删除成员并更新列中的更新值。
或者我应该在数据库中有单独的 table,每个 ID 会有多行。这些行将单独包含队列的成员。在这种情况下,可能会同时发生 10k 次插入。在检索时,可能会同时发生 10k 次删除。
你有什么建议?哪种方式更具可扩展性?
第二种方法的数据库结构:
客户Table
身份证、姓名
现在需要为另一个 table 中的每个客户维护队列。
队列Table
ID(这个table的主键), CustomerID(来自Customer Table的外键), String(队列中成员的字符串)
因此我需要通过 CustomerID 从队列 table 中获取数据。
您可以将 table 更改为:
id | CusomterID | string
---+------------+----------
1 | 1 | hello
2 | 1 | idontknow
3 | 1 | bye
4 | 2 | something
那么你的整个table就是队列。它使读取队列中的下一个作业变得非常简单,并且使更新队列变得非常简单。