我有2个mysql表“ store(id,name,imageurl)”和“ favorites(person,storeid)”。
一切都很好。但是随着数据的增加,它变得越来越慢。我认为其主要原因是查询中的“ IN”。有什么方法可以使此查询的执行更加智能?
SELECT id,name,imageurl FROM store WHERE id IN
(SELECT storeid FROM favorites WHERE person='rhino' AND storeid>100000)
提前致谢。
最佳答案
这是另一种方法
看来您可以直接查找而不是IN
。像这样:
SELECT s.id, s.name, s.imageurl
FROM store s, favorites f
WHERE f.person='rhino' AND f.storeid>100000 AND f.storeid=s.id
这种方法避免了
JOIN
,它也可能很昂贵。