我最近一直在尝试使用 Redis 和 MongoDB,似乎经常会出现这样的情况: 在 MongoDB 或 Redis 中存储一个 身份证数组。我将坚持 Redis 的这个问题,因为我问关于 MySQL进去操作符。
我想知道在 IN 操作符中列出大量(300-3000) 身份证的性能如何,它看起来像这样:
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
设想一个简单的 产品和 类别表,通常您可以将它们连接在一起,从某个 类别获得 产品。在上面的示例中,您可以看到,在 Redis (category:4:product_ids
)中的给定类别下,我返回 id 为4的类别中的所有产品 ID,并将它们放在上面的 SELECT
查询中的 IN
操作符中。
表现如何?
这是“看情况”的情况吗?或者有一个具体的“这是(不)可以接受的”或“快”或“慢”,或者我应该添加一个 LIMIT 25
,或不帮助?
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
LIMIT 25
或者我应该修剪 Redis 返回的产品 id 的数组,将其限制为25,并且只向查询添加25个 id,而不是从查询内部将其从3000和 LIMIT
增加到25?
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 25)
任何建议/反馈都非常感谢!