什么时候在MySQL IN子句中使用字符串被认为太多了?

Jas*_*vis 6 mysql performance

请告诉我从MySQL查询中使用"IN子句"的经验被认为是一个太大的列表来推动被认为是好的做法?

示例场景是我有一个用户ID号的字符串,我将从缓存中提取,它可以从1个数字一直到该列表中的5,000个数字,我将使用这个列表的mysql查询,如下所示例;

SELECT column FROM table 
WHERE userid 
IN ( 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 )
Run Code Online (Sandbox Code Playgroud)

你能告诉我你对这个问题的看法吗?

Jor*_*nal 0

只要您的userid字段已建立索引,听起来就是一个不错的选择。

不管怎样,这里真正的问题是将 IN 的性能与其他替代方案进行比较。如果这是获取数据的唯一方法,那么您无能为力