【发布时间】:2020-08-29 11:30:14
【问题描述】:
我有一个表addresses 和许多表都有一个引用地址的address_id 列(都有外键约束)。我想找出没有从任何其他表中引用的地址数。
我尝试了以下查询,但速度很慢:
SELECT COUNT(*)
FROM addresses A
LEFT JOIN customers C ON C.address_id = A.id
LEFT JOIN agreements AG ON AG.address_id = A.id
LEFT JOIN products P ON P.address_id = A.id
LEFT JOIN letters L ON L.address_id = A.id
WHERE C.id IS NULL
AND AG.id IS NULL
AND P.id IS NULL
AND L.id IS NULL
有什么方法可以做到这一点,而无需永远查询?
【问题讨论】:
-
每个优化问题都需要 2 件事,一个用于查询的 EXPLAIN 以及所有涉及的所有表的创建表
标签: mysql count subquery left-join query-performance