我有一些包含WHERE IN语句的MySQL查询。
SELECT * FROM table1 WHERE id IN (1, 2, 15, 17, 150 ....)
当IN子句中有数百个ID时,它的性能如何?它是否设计用于处理多个参数?(我的表将有数十万行,ID是主字段)
是否有更好的方法来做到这一点?
编辑:我从搜索服务器查询的结果集中获取ID。因此,不是从数据库中获取。我猜联接语句行不通。
IN
子句中,他不应该执行任何OR
或IN
选择。 - aF.例如,您应该将IN
子句“参数”放入table2
中。
之后,您需要执行以下操作:
SELECT t1.* FROM table1 t1
INNER JOIN table2 t2 ON t1.Id = t2.Id
IN
子句非常大,也许使用一个带有一些选择表的JOIN
会更好? - Xophmeister