मैं हाल ही में Redis और MongoDB के साथ प्रयोग कर रहा हूं और ऐसा लगता है कि अक्सर ऐसे मामले होते हैं जहां आप id की एक सरणी को MongoDB या Redis में संग्रहीत करते हैं । जब से मैं MySQL IN ऑपरेटर के बारे में पूछ रहा हूँ, मैं इस सवाल के लिए रेडिस के साथ रहूँगा ।
मैं सोच रहा था कि IN ऑपरेटर के अंदर आईडी की एक बड़ी संख्या (300-3000) को सूचीबद्ध करना कितना अच्छा है , जो इस तरह दिखाई देगा:
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
एक उत्पाद और श्रेणियों की तालिका के रूप में कुछ के रूप में सरल कल्पना करो, जो आप आम तौर पर एक निश्चित श्रेणी से उत्पादों को प्राप्त करने के लिए एक साथ जोड़ सकते हैं । ऊपर दिए गए उदाहरण में आप देख सकते हैं कि Redis ( ) में दिए गए श्रेणी के अंतर्गत मैं श्रेणी 4 से सभी उत्पाद आईडी वापस करता हूं, और उन्हें ऑपरेटर के अंदर उपरोक्त क्वेरी में रखता हूं ।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 द्वारा 25 तक सीमित करने के लिए उत्पाद आईडी की सरणी को ट्रिम करना चाहिए और केवल 3000 के बजाय 25 आईडी को क्वेरी में जोड़ना होगा और LIMIT
इसे क्वेरी के अंदर से 25 तक करना होगा?
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 25)
किसी भी सुझाव / प्रतिक्रिया बहुत सराहना की है!