我最近一直在使用Redis和MongoDB进行实验,似乎经常会在MongoDB或Redis中存储ID数组。因为我要询问MySQL IN运算符,所以我会坚持使用Redis 。
我想知道在IN运算符中列出大量(300-3000)id的性能如何,看起来像这样:
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
想象一下简单的产品和类别表,您通常可以将它们结合在一起以从某个类别中获得产品。在上面的示例中,您可以看到在Redis()中的给定类别下,我返回了ID为4的类别中的所有产品ID,并将其放置在运算符内的上述查询中。category:4:product_ids
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)
任何建议/反馈深表感谢!