基于主键列表的高效sqlite查询

Joh*_*nes 6 sqlite performance select primary-key

为了根据 ID 列表(即不同的主键)查询 sqlite 表,我使用了以下语句(基于Chinook 数据库的示例 ):

SELECT * FROM Customer WHERE CustomerId IN (1,2,3,8,20,35)
Run Code Online (Sandbox Code Playgroud)

但是,我的实际 ID 列表可能会变得相当大(> 1000)。因此,我想知道这种使用IN语句的方法是否最有效,或者是否有更好/优化的方法来基于主键列表查询 sqlite 表。

CL.*_*CL. 1

如果 IN 中的元素数量足够多,SQLite 会为它们构建临时索引。这可能比手动创建临时表更有效。

IN 列表的长度仅受SQL 语句的最大长度和内存的限制。