मैं PHP डेटा ऑब्जेक्ट्स (PDO) के साथ एक MySQL डेटाबेस को बदल रहा हूं और एक व्यापक SQL क्वेरी को निष्पादित कर रहा हूं । आम तौर पर, यह लगभग 1500 एमएस लेता है; मुझे अभी भी इसे अनुकूलित करने की आवश्यकता है। जब मैं बीच में एक छोटे अंतराल के साथ दो बार PHP स्क्रिप्ट चलाता हूं, तो क्वेरी केवल लगभग 90 एमएस लेती है। क्वेरी दोनों मामलों में समान है। जब मैं स्क्रिप्ट चलाता हूं, उसी क्वेरी के साथ, कुछ समय बाद फिर से 1500 एमएस लेता है।
ऐसा क्यों है? डेटाबेस कैश स्वचालित रूप से करता है? क्या कुछ समय डेटाबेस कैश को बचाता है और फिर स्वचालित रूप से इसे हटा देता है?
मुझे लगता है कि परिणाम PHP द्वारा कैश नहीं किए जा सकते, क्योंकि यह दो अलग-अलग थ्रेड्स में होता है। मुझे नहीं लगता कि PHP परिणामों को कैश करेगा, क्योंकि यह नहीं जान सकता कि डेटाबेस बदल गया है या नहीं।
डेटाबेस में नई पंक्तियाँ सम्मिलित करने के लिए मेरे पास प्रत्येक मिनट में एक स्क्रिप्ट चल रही है। यह भी कारण हो सकता है कि यह कुछ समय बाद फिर से 1500 एमएस लेता है; कैश हटा दिया गया होगा, क्योंकि संबंधित टेबल अब समान नहीं हैं।