आपके मूल SQL क्वेरी में पंक्तियों की एक छोटी संख्या के लिए पूछताछ के अलावा, अस्थायी तालिका के आकार को सीमित करने का कोई तरीका नहीं है।
क्या आप जो त्रुटि देख रहे हैं उसके बारे में अधिक विशिष्ट हो सकते हैं? MySQL अस्थायी सारणी tmp_table_size
और max_heap_table_size
की मेमोरी में मौजूद हो सकती है। यदि अस्थायी तालिका बड़ी है, तो MySQL इसे ऑन-डिस्क अस्थायी तालिका में परिवर्तित करता है।
यह अस्थायी भंडारण की तुलना में अस्थायी तालिका को बहुत धीमा कर देगा, लेकिन इसके परिणामस्वरूप you have no space available in your temp directory तक कोई त्रुटि नहीं होनी चाहिए।
अस्थायी तालिका भंडारण के अलावा ways MySQL uses memory भी बहुत सारे हैं। आप इनमें से कई के लिए चर ट्यून कर सकते हैं, लेकिन यह एक क्वेरी का उपयोग करने वाली स्मृति पर सीमा रखने जैसा नहीं है।
त्रुटि 1114 इंगित करता है कि आप अंतरिक्ष से बाहर हो गए हैं। यदि यह डिस्क पर एक InnoDB तालिका थी, तो संभवतः इसका मतलब है कि आपके पास tablepace के लिए परिभाषित autoextend के बिना एक ibdata1 फ़ाइल है। मेमोरी टेबल के लिए, इसका मतलब है कि आप max_heap_table_size की सीमा को मार रहे हैं।
जब से तुम max_heap_table_size नहीं बदल सकते, अपने विकल्पों को एक समय में पंक्तियों की संख्या आप तालिका में डाल को कम करने, वरना एक पर डिस्क अस्थायी तालिका का उपयोग करने के बजाय स्मृति में करने के लिए कर रहे हैं।
इसके अलावा MySQL के मुख्य संस्करण के सबसे मौजूदा रिलीज का उपयोग कर के बारे में सावधान रहना होगा। मैं bug 18160 कि MySQL के ढेर तालिकाओं (जिसमें स्मृति अस्थायी तालिकाओं के लिए उपयोग किया जाता है) के लिए तालिका आकार की गणना गलत तरीके से रिपोर्ट मिल गया। तो उदाहरण के लिए सुनिश्चित करें कि आप उस बग के लिए फिक्स प्राप्त करने के लिए कम से कम MySQL 5.0.23 या 5.1.10 का उपयोग कर रहे हैं। : आपके उत्तर के लिए
स्रोत
2011-11-21 17:55:35
धन्यवाद, त्रुटि संदेश im हो रही [1114 मूल निवासी कोड] है [मूल संदेश: तालिका 'dertemp' भरा है] –
मैं डिस्क पर अस्थायी तालिका का प्रयोग करेंगे कैसे के शुरू होने से मेरी क्वेरी तरह लग रहा है 'अस्थायी तालिका erebus.dertemp चयन आदि बनाएं here' चला जाता है मैं कल्पना मैं पहली बार थोड़ा बदल सकते हैं और वहाँ किसी भी तरह में ऑन-disk'' डाल करने के लिए की आवश्यकता होगी? –
'बनाएं अस्थायी तालिका erebus.dertemp इंजन = InnoDB का चयन करें ...' –