[有人可以帮助我重写查询以加快执行时间吗?花费了[[37秒的时间。
DELETE FROM storefront_categories
WHERE userid IN (SELECT userid
FROM MASTER
where expirydate<'2020-2-4'
)
同时,此查询只花了4.69秒即可执行。
DELETE FROM storefront_categories WHERE userid NOT IN (SELECT userid FROM MASTER)
表具有97K条记录,而MASTER中具有40K条记录。我们已经在MASTER.expirydate字段上创建了一个索引。感谢您的时间。storefront_categories
我建议以下索引进行优化:
master(expiry_date, userid)
storefront_categories(userid)
第一个索引是master
上子查询的covering索引:这意味着数据库应该仅通过查看索引即可执行子查询(而索引中只有
第二个索引使数据库优化expiry_date
,它仍然需要查看表数据以获取相关的userid
)。in
操作。