我有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,它也可能很昂贵。

09-20 23:13