2010-06-28 14 views
8

ताला लगा के बिना एक सूचकांक बनाने मैं 10+ लाख पंक्तियों के साथ एक मेज है। मुझे एक कॉलम पर एक इंडेक्स बनाने की ज़रूरत है, हालांकि, इंडेक्स को इतना लंबा लगता है कि मुझे टेबल के खिलाफ ताले मिलते हैं।डीबी

यह ध्यान रखें कि सूचकांक एक के हिस्से के रूप बनाया जा रहा है महत्वपूर्ण हो सकता है 'रेक db: विस्थापित' कदम ... मैं मैन्युअल सूचकांक बनाने कि अगर काम करेंगे करने के लिए प्रतिकूल नहीं हूँ।

अद्यतन: मुझे लगता है कि मैंने कहा जाना चाहिए था कि यह एक लिखने अक्सर तालिका।

+0

ताले ठीक कर रहे हैं। क्या आपको टाइमआउट या डेडलॉक्स मिल रहे हैं? –

+1

ताले ठीक नहीं हैं। यही शिकायत है। – Richard

+0

क्या आपको कभी इसके लिए कोई जवाब मिला? – tj111

उत्तर

3

MySQL NDBCLUSTER इंजन ऑनलाइन सूचकांक बना सकते हैं मेज पर लेखन ताला लगा के बिना। हालांकि, सबसे व्यापक रूप से उपयोग किया जाने वाला इनो डीबी इंजन इस सुविधा का समर्थन नहीं करता है। एक अन्य मुक्त और मुक्त स्रोत डीबी पोस्टग्रेस 'समरूप रूप से सूचकांक बनाएं' का समर्थन करता है।

+0

'अनुक्रमांक को समेकित रूप से' संस्करण 8.2 में जोड़ा गया था या वहां about। – Richard

+0

हाल ही में हम इनो डीबी के साथ तालिकाओं को लॉक किए बिना ऑनलाइन स्कीमा परिवर्तन करने के लिए पेर्कोन टूलकिट का उपयोग कर रहे हैं। – Daniel

2

आप इस (छद्म कोड) की तरह कुछ के साथ रुकावट रोका जा सकता है:

create table temp like my_table; 
update logger to log in temp; 
alter table my_table add index new_index; 
insert into my_table select * from temp; 
update logger to log in my_table; 
drop table temp 

कहाँ लकड़हारा होगा जो कुछ भी नियमित रूप से उपयोग में अपनी मेज (पूर्व .: PHP स्क्रिप्ट) के लिए पंक्तियों/अपडेट कहते हैं। यह एक अन्य अद्यतन के दौरान उपयोग करने के लिए एक अस्थायी तालिका स्थापित करेगा।

+0

मुझे लगता है कि मुझे यह उल्लेख करना चाहिए था कि यह अक्सर एक टेबल लिखता है। तो एक अस्थायी तालिका कठिन होने जा रही है लेकिन कार्यान्वित करना असंभव नहीं है। आदर्श से बस थोड़ा सा। – Richard

0

यह सुनिश्चित करने का प्रयास करें कि से पहले रिकॉर्ड डाले गए हैं। इस तरह, सूचकांक तालिका की आबादी के दौरान भी भर जाएगा। हालांकि इसमें अधिक समय लगेगा, कम से कम यह जाने के लिए तैयार होगा जब रेक कार्य किया जाता है।

+0

अधिकांश अनुक्रमणिका इस तरह से बनाई गई हैं; तथापि; लोकप्रिय धारणा के विपरीत ओरेकल और माइक्रोसॉफ्ट में जादूगर लगातार अपने डीबीए को अपने इंडेक्स के पुनर्निर्माण के लिए कह रहे हैं जब प्रदर्शन शुरू हो जाता है। कुछ ईटीएल मामलों में भी यह बाद में सूचकांक के लिए वास्तव में अधिक कुशल है। – Richard