Son zamanlarda Redis ve MongoDB ile deneyler yapıyorum ve çoğu zaman MongoDB veya Redis'de bir dizi kimliği saklayacağınız durumlar var gibi görünüyor . MySQL IN operatörü hakkında soru sorduğum için bu soru için Redis'e bağlı kalacağım .
IN operatörü içinde çok sayıda (300-3000) id listelemenin ne kadar performanslı olduğunu merak ediyordum , bu şuna benzer bir şeye benzeyecektir:
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
Belirli bir kategorideki ürünleri almak için normalde bir araya getirebileceğiniz ürünler ve kategoriler tablosu kadar basit bir şey hayal edin . Yukarıdaki örnekte, Redis ( ) içindeki belirli bir kategori altında , 4 numaralı kategorideki tüm ürün kimliklerini döndürdüğümü ve bunları operatörün içindeki yukarıdaki sorguya yerleştirdiğimi görebilirsiniz .category:4:product_ids
SELECT
IN
Bu ne kadar başarılı?
Bu "duruma göre değişir" bir durum mu? Veya somut bir "bu kabul edilebilir (değil)" veya "hızlı" veya "yavaş" var mı, yoksa bir eklemeli miyim LIMIT 25
, yoksa bu yardımcı olmuyor mu?
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
LIMIT 25
Yoksa Redis tarafından döndürülen ürün kimliği dizisini 25 ile sınırlandırmalı ve sorguya 3000 yerine 25 kimlik eklemeli ve sorgu içinden 25'e eklemeli LIMIT
miyim?
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 25)
Herhangi bir öneri / geri bildirim çok takdir edilmektedir!