InnoDB संकुल प्राथमिक कुंजियों का उपयोग करता है, इसलिए प्राथमिक कुंजी को डेटा पृष्ठों में पंक्ति के साथ संग्रहीत किया जाता है, अलग-अलग अनुक्रमणिका पृष्ठों में नहीं। एक श्रेणी स्कैन करने के लिए आपको अभी भी डेटा पृष्ठों में सभी संभावित विस्तृत पंक्तियों के माध्यम से स्कैन करना होगा; ध्यान दें कि इस तालिका में एक टेक्स्ट कॉलम है।
मैं दो चीजों की कोशिश करूंगा:
- चलाएं
optimize table
. यह सुनिश्चित करेगा कि डेटा पृष्ठ भौतिक रूप से क्रमबद्ध क्रम में संग्रहीत हैं। यह एक संकुल प्राथमिक कुंजी पर एक रेंज स्कैन को संभावित रूप से तेज कर सकता है। - केवल change_event_id कॉलम पर एक अतिरिक्त गैर-प्राथमिक अनुक्रमणिका बनाएं। यह उस कॉलम की एक कॉपी को इंडेक्स पेजों में स्टोर करेगा जो स्कैन करने के लिए बहुत तेज होगा। इसे बनाने के बाद, यह सुनिश्चित करने के लिए व्याख्या योजना देखें कि यह नई अनुक्रमणिका का उपयोग कर रहा है।
(आप भी संभवतः change_event_id कॉलम को बड़ा बनाना चाहते हैं अहस्ताक्षरित अगर यह शून्य से बढ़ रहा है)