我正在为删除操作遇到一些无限循环。我尝试了很多方法来处理这个问题,但仍然需要花费太多时间。我会尽量明确。
我在这个问题上有4个牵连表。
删除是根据给定的pool_id
完成的Table 1 contain the pool_id
Table 2 the ticket_id foreign join ticket_pool_id with the pool_id
Table 3 ticket_child_id foreign join ticket_id with the ticket_id
Table 4 ticket_grand_child_id foreign ticket_child_id join with the ticket_child_id
Concerned count for each
table 1---->1
table 2---->1 200 000
table 3---->6 300 000
table 4---->6 300 000
所以实际上它要删除6.3M + 6.3M + 1.2M + 1行
这是约束:
这是我试过的:
没有一个人在不到一个小时的时间内工作。我们不能将删除基于其中一个列值的事实没有帮助。有办法吗?
答案 0 :(得分:1)
如果您尝试删除加入表格,复杂性可能会变成立方体甚至更糟。对于包含许多记录的表格,这将成为性能杀手。您可以尝试从临时表中的第一个表输出要删除的值列表,然后使用另一个值从第二个表中选择要删除的ID,依此类推。我认为拥有适当的索引将使复杂性保持二次,并且将在正常的时间段内完成任务。祝你好运