【发布时间】:2016-09-21 12:15:46
【问题描述】:
我有 2 张桌子,都是 MyISAM。表 'dataproc' 有 600000 条记录,表 'unsubscribers' 有 2500 条记录。当表 A 中的字段 x 匹配表 b 中的字段 y 时,我正在尝试从表 a 中删除记录。我写的查询虽然有效,但非常慢(30 分钟以上)。
DELETE e
FROM dataproc e
INNER JOIN unsubscribers j ON e.EMAIL = j.EMAIL;
我写了一个类似的方法,它在会员编号字段上使用 WHERE e.EMAIL = j.EMAIL 进行左连接,它运行得更快,但不幸的是没有相同的结果(因为并非所有会员编号都有相同的电子邮件地址)。尽管此查询的运行速度比上述查询快很多,但它在几秒钟内完成。
要使整个删除过程与我编写的第二个查询一样快,我需要在 1 个或两个被索引的字段上加入吗?有没有更好的方法来编写第一个查询以使其更快?
【问题讨论】: