更新行然后插入新的关联行,或重组数据?

时间:2011-05-31 21:50:10

标签: mysql database-design performance

让我们设置舞台,PHP& MYSQL:

我有一个表格,我们会调用路线来保存给定任务的每个步骤。每个任务都有可变步骤。

此问题唯一真正必要的字段是(主要) step_id ,** task_id **,步骤

当作者更新他们的指示时,他们可以更新每个步骤,添加新步骤,删除旧步骤。

我理解如何处理更新/插入/删除逻辑结构 INSERT ... ON DUPLICATE KEY ...等等。

我关心的是其他地方。假设某人为任务#1写了指示,五个月后他们用几个新步骤更新任务#1。在那个时候,有1000个新任务。

任务#1的大多数步骤都位于说... step_id 1-10中,并且新步骤将在10001中下降,这真的是一个问题吗?

由于我没有对步骤进行特定的计算,这种情况下我最好将每个步骤作为序列化数组存储在一行中吗?

1 个答案:

答案 0 :(得分:0)

我相信task_id对于这个问题也是非常重要的领域。如果对其编制索引,则无论选择给定任务的步骤如何,无论它们在表中的分隔程度如何,都不会出现任何性能问题。

对于序列化的步骤,您将遇到更多问题,因为您必须为每次更新/删除反序列化它们,再次序列化然后更新行,除非您限制每个任务的步骤数,否则您可能会遇到列大小的问题