表有大约 800 万行。 X 有一个非唯一索引。
显示索引,它表明在表中有一个键名 X 上的非唯一索引,“seq_in_index”为 1,排序规则 A,基数 7850780,sub_part NULL,packed NULL,index_type BTREE。
不过,此查询可能需要 5 秒才能运行。整数列表来自另一个系统,我不允许将它们存储在表中,因为它们代表社交网络上的友谊。
有没有比大量 IN 语句更快的方法?
最佳答案
您可以将 ID 列表转换为临时表(如果 MySql 支持,则为 table-var)并加入其中。
该表只会在查询时存在,因此您实际上并没有存储任何东西到表中。
关于sql - SELECT * FROM table WHERE x IN (...几百个整数...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623577/