0

我有三个表,第一个是contact,包含所有联系人及其姓名、电子邮件等。
第二个是cross_contactList_contact,它仅用作将每个联系人连接到多个联系人列表的帮助表。
第三个包含联系人列表的名称和设置,在此查询中未使用。

此查询在从其自己的表中删除联系人列表后启动一次,并且在包含该已删除列表 ID 的交叉表中的所有行也被删除之后。然后,此查询类似于“清理”,它检查是否有任何联系人,这些联系人不在任何其他联系人列表中。

问题是,我的数据库需要使用 1 百万。- 2. 密耳。行,但出于测试目的,我在 5 个不同的联系人列表中“仅”使用约 70 000 个联系人(cross_contactList_contact 中约有 80 000 条记录,少数联系人在多个列表中,其中一个列表有大约 60 000 条记录,其他 < 3 000),但查询总共运行大约 18-20 分钟

    DELETE contact FROM contact 
    LEFT JOIN cross_contactList_contact ON contact.id = cross_contactList_contact.contact_id
    WHERE cross_contactList_contact.contactList_id IS NULL
4

1 回答 1

0

重新生成索引后一切正常,所以完全没有问题。谢谢。

于 2014-03-06T10:11:04.177 回答