【发布时间】:2014-08-01 08:03:17
【问题描述】:
我有一个关于性能的问题,我想我做错了什么。
我有一个包含项目的表,另一个包含类别的表,任何项目都可以属于多个类别。现在我想显示所有不包含在任何类别中的项目。
连接在表 Items_Categories 中(仅使用 ID_item 和 ID_category)
我做了这个查询:
SELECT *
FROM Items AS i
WHERE ID_item NOT
IN (
SELECT DISTINCT ID_item
FROM Items_Categories
)
它可以工作,但速度很慢。这需要几秒钟,我的数据库不是那么大。我有大约 3000 个项目和 200 个类别。
有更好的解决方案吗?
【问题讨论】:
-
您需要选择所有内容吗?如果不只选择你需要的列,这样会加快查询速度
-
首先告诉我们您在这些表上有哪些索引,以及查询中 EXPLAIN 的结果显示了什么