2011-06-01 12 views
5

एक MySQL तालिका के साथ एक दिलचस्प समस्या में भागो मैं रिपोर्टिंग उद्देश्यों के लिए एक अस्थायी तालिका के रूप में निर्माण कर रहा था।धीमी ड्रोप टेम्पलेटरी तालिका

मैंने पाया कि अगर मैं एक भंडारण इंजन निर्दिष्ट नहीं किया है, ड्रॉप अस्थायी तालिका कमान अपने हाथ में आधे सेकंड के लिए लटका दिया।

यदि मैंने अपनी तालिका को इंजन = स्मृति के रूप में परिभाषित किया है तो यह छोटा लटका गायब हो जाएगा।

मैं इस समस्या (स्मृति तालिकाओं का उपयोग) करने के लिए एक समाधान है के रूप में, मेरे सवाल क्यों अस्थायी तालिका ड्रॉप करने में लंबा समय लग जाता है? क्या वे डिफ़ॉल्ट रूप से मेमरी इंजन का उपयोग नहीं करते हैं? यह मेरे वर्तमान परीक्षण डेटा के साथ कुछ सौ पंक्तियों में भी एक बहुत बड़ी मेज नहीं है।

उत्तर

4

अस्थायी टेबल, डिफ़ॉल्ट रूप से, बनाया जाएगा जहां कभी mysql विन्यास के लिए, आम तौर पर/tmp यह बताता है या कहीं और एक डिस्क पर। आप इस स्थान (और यहां तक ​​कि एकाधिक स्थानों) को RAM डिस्क स्थान जैसे/dev/shm पर सेट कर सकते हैं।

आशा है कि इससे मदद मिलती है!

+1

बस अजीब लगता है कि सिर्फ एक फ़ाइल को हटाना (जो वास्तव में एक ड्रॉप टेबल है) असंगतता का आधे सेकेंड का कारण बनता है। – GordonM

संबंधित मुद्दे