शीर्ष 20 प्राप्त करें। यदि वे आवश्यकताओं को पूरा नहीं करते हैं, तो लापता टुकड़े प्राप्त करने के लिए एक अतिरिक्त क्वेरी करें। आपको प्रश्नों की संख्या और प्रत्येक रिटर्न की पंक्तियों की संख्या के बीच कुछ संतुलन बनाने में सक्षम होना चाहिए।
मैं आपको शीर्ष 100 में मिला, यह 90% समय की आवश्यकताओं को पूरा कर सकता है और 10 अलग-अलग प्रश्नों की तुलना में सस्ता और तेज होगा।
अगर यह SQL सर्वर होता तो मैं और मदद कर सकता था...
दरअसल, मेरे पास एक और विचार है। हर 5 मिनट में एक प्रक्रिया चलाएँ जो सूची की गणना करती है और उसे एक तालिका में कैश करती है। संबंधित तालिकाओं के विरुद्ध DML बनाएं कैश को अमान्य करें ताकि इसका उपयोग तब तक न किया जाए जब तक कि इसे फिर से तैयार नहीं किया जाता (शायद एक लेख हटा दिया गया था)। यदि कैश अमान्य है, तो आप तुरंत इसकी गणना करने के लिए वापस आ जाएंगे... और इसका उपयोग किसी भी तरह कैश को फिर से खोलने के लिए कर सकते हैं।
कैश्ड सूची को पुनर्गणना करने के बजाय रणनीतिक रूप से अद्यतन करना संभव हो सकता है। लेकिन यह एक वास्तविक चुनौती हो सकती है।
इससे क्वेरी गति और आपके डेटाबेस पर लोड कम करने में मदद मिलनी चाहिए। यदि आपकी लेख सूची 5 मिनट पुरानी है तो इससे कोई खास फर्क नहीं पड़ना चाहिए। ठीक है, 1 मिनट भी काम कर सकता है।