टेबल लॉक किए बिना बड़ी MySQL प्रोडक्शन टेबल पर इंडेक्स कैसे बनाएं
समस्या पृष्ठभूमि:
एक बड़ी MySQL तालिका पर एक इंडेक्स बनाना एक कठिन काम हो सकता है, खासकर उत्पादन वातावरण में जहां निर्बाध पहुंच महत्वपूर्ण है। पारंपरिक क्रिएट इंडेक्स स्टेटमेंट के परिणामस्वरूप संपूर्ण टेबल लॉक हो सकता है, जिससे सभी समवर्ती संचालन अवरुद्ध हो सकते हैं। ऑनलाइन निष्पादित किए जाते हैं, जिससे सूचकांक निर्माण के दौरान पढ़ने और लिखने का कार्य जारी रहता है।
हालाँकि, MySQL 5.5 और इससे पहले के संस्करणों में, जिनमें शामिल हैं InnoDB और MyISAM टेबल, इंडेक्स अपडेट टेबल पर लिखने को ब्लॉक कर देंगे। सर्कुलर मास्टर्स तकनीक:
प्राथमिक मास्टर (मास्टर) से प्रतिकृति बनाते हुए एक सेकेंडरी मास्टर (मास्टर बी) सेट करें ए).मास्टर ए पर स्कीमा अपडेट करें और इसे बनाएं सेकेंडरी मास्टर।
पेरकोना का पीटी-ऑनलाइन-स्कीमा-चेंज टूल:AWS RDS विचार:
तालिका को विभाजित करें:
तालिका को छोटे-छोटे विभाजनों में विभाजित करें, प्रत्येक विभाजन पर अलग से सूचकांक बनाएं, और फिर विभाजनों को वापस एक साथ मर्ज करें।पृष्ठभूमि प्रक्रिया का उपयोग करें: एक अलग पृष्ठभूमि प्रक्रिया बनाएं जो धीरे-धीरे सूचकांक बनाती है जबकि तालिका सामान्य संचालन के लिए सुलभ रहती है। यह दृष्टिकोण सभी MySQL संस्करणों में समर्थित नहीं है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3