- को जोड़ने का है सूचकांक पर तेजी से बदलते स्तंभ की तरह "lastUpdatedOn" इसके लायक है ?
- कैसे की गणना करने के लिए tradeoff ?
- कर सकते हैं किसी को मुझसे बात करने के लिए सरकारी दस्तावेज पर कब और कैसे करता है MySQL reindexes पर पंक्ति सम्मिलित करता है और अद्यतन पर अनुक्रमणित स्तंभ.
करने के लिए कि क्या एक सूचकांक सहित एक "तेजी से बदलते स्तंभ" है एक tradeoff है ।
एक UPDATE
की जरूरत को नष्ट करने के लिए एक प्रविष्टि में एक सूचकांक और एक नई प्रविष्टि जोड़ने में कहीं और सूचकांक.
दूसरे हाथ पर, सूचकांक मई में काफी गति के कारण सूचकांक.
कृपया प्रदान एक ठोस उदाहरण तो हम पर चर्चा कर सकते हैं tradeoffs आगे.
नियमित रूप से गैर-UNIQUE
अनुक्रमित (के रूप में करने का विरोध किया FULLTEXT
और SPATIAL
) रखा जाता है इस प्रकार है:
वहाँ है एक "परिवर्तन" बफर (qv) में buffer_pool का कहना है कि सूचकांक है कि अद्यतन अभी तक नहीं किया गया डिस्क के लिए लिखा.
जब एक DELETE
होता है, एक प्रविष्टि जोड़ा गया है करने के लिए परिवर्तन करने के लिए बफर का कहना है कि सूचकांक में प्रवेश करने की जरूरत है हटाया जा सकता है.
के लिए UPDATE
दो प्रविष्टियों हो सकता है की जरूरत में डाल करने के लिए सीबी.
जब एक SELECT
का उपयोग करता है इस तरह के एक सूचकांक के साथ, यह जाँच करता है दोनों सीबी और वास्तविक समय में है, पर-डिस्क, BTree सूचकांक के लिए. कि BTree कैश है (ब्लॉक द्वारा ब्लॉक) में buffer_pool. (एक ब्लॉक है 16KB और पकड़ सकता है सौ(एस) की प्रविष्टियों.)
सीबी है फ्लश करने के लिए डिस्क में "पृष्ठभूमि" या "के रूप में की जरूरत है". शामिल है कि दिलकश एक सूचकांक ब्लॉक (जब तक कि पहले से ही कैश्ड), अद्यतन करने के लिए कुछ प्रविष्टियों (हटाने के लिए, और/या जोड़), और वापस लिखने के लिए डिस्क । दोनों पढ़ने और लिखने के लिए कैश कर रहे हैं में buffer_pool, तो या तो या न हो सकता है एक भौतिक I/O.
MySQL नहीं करता है "पुनर्निर्माण" एक नियमित रूप से सूचकांक ("reindex") को छोड़कर के माध्यम से कुछ ALTERs
या OPTIMIZE
. कि है, सभी परिवर्तन मक्खी पर बनाया. कार्रवाई के सीबी उपयोगकर्ता के लिए पारदर्शी है.