从id列表中选择数千行的最有效方法

Wil*_*ing 8 mysql

是否有任何可扩展的方法使用mysql IN或类似的东西选择数千行?

例如

SELECT * FROM awesomeTable WHERE id IN (1,2,3,4......100000)
Run Code Online (Sandbox Code Playgroud)

这可能还是我只是在做梦?Schema是InnoDB,如果另一个提供更具可扩展性的解决方案,则可以更改.

作为参考,我从Solr返回的一组id中获取搜索结果.我想使用mysql进行最终检索,因为它会使这些结果的排序和最终过滤变得更加容易(我不会深入了解原因).

编辑:

只要IN仍然包含所有100000个ID,查询就可以使用LIMIT子句

例如

SELECT * FROM awesomeTable WHERE id IN (1,2,3,4......100000) LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

NoD*_*und 1

我就是我,并不真正了解您的框架,您应该尝试将这些 ID 插入到临时表中,并通过简单的内部联接使用该表。事实证明,这与 IN 一样快。