ऐसा करने का सबसे अच्छा तरीका वास्तव में आपके डेटा और प्रश्नों की गुणवत्ता और प्रकृति पर निर्भर करता है। शुरुआत के लिए, उत्पादों के लिए एक ही तालिका में 180MB डेटा कोई समस्या नहीं है, जो भी आप इसे देखते हैं। और प्रति दिन 30k प्रश्न एक समस्या से भी कम है। ठीक से कॉन्फ़िगर किए गए डेटाबेस के साथ, कोई भी पुराना डेस्कटॉप इस लोड को संभाल सकता है।
अन्य लोगों ने पहले ही आपके दो प्रमुख विकल्प, MySQL या noSQL डेटाबेस को इंगित किया है।
यदि आपके पास हर एक उत्पाद (जैसे निर्माता, मूल्य, वेयरहाउस नंबर, आदि) के लिए निश्चित संख्या में विशेषताएँ मौजूद हैं, तो आपका सबसे अच्छा विकल्प इन विशेषताओं के लिए कॉलम रखना और अपनी कुंजी / मान जोड़े को एक फ्लैट टेबल प्रारूप में बदलना है। उस तालिका के लिए प्राथमिक कुंजी के रूप में एक उत्पाद आईडी के साथ। यह बहुत अच्छी तरह से काम करेगा भले ही कुछ कॉलम केवल पंक्तियों के आधे हिस्से द्वारा उपयोग किए जाते हों, क्योंकि अधिकांश उत्पादों के लिए आपको केवल उनके सभी गुणों को प्राप्त करने के लिए 1 क्वेरी चलाने की आवश्यकता होगी। यह उत्पादों के बारे में डेटा है, मुझे लगता है कि यह काफी संभावना है कि यह आपके डेटा की संरचना है।
यदि विशेषताओं की उपस्थिति और डेटा प्रकार में व्यापक रूप से भिन्नता है, तो आप noSQL डेटाबेस का उपयोग करने में बेहतर हो सकते हैं, जो इस परिदृश्य को पारंपरिक SQL डेटाबेस की तुलना में अधिक कुशल बनाते हैं।
प्रदर्शन के बारे में: मैंने पहले एक ई-कॉमर्स कंपनी के लिए काम किया है, जहां एक लंबे समय के लिए वेबसाइट को एक MySQL सर्वर से डेटा प्रदान किया गया था। इस सर्वर में 2GB RAM था, कुल मिलाकर डेटाबेस लगभग था। आकार में 5GB और शीर्ष लोड के तहत सर्वर ने प्रति सेकंड कई हजार प्रश्नों को संभाला। हां, हमने काफी क्वेरी ऑप्टिमाइज़ेशन किया था, लेकिन यह निश्चित रूप से उल्लेखनीय है।