इसके प्रभाव को कम करने के लिए आप दो चीजें कर सकते हैं
विकल्प #1 :चर बढ़ाएँ tmp_table_size और/या max_heap_table_size
ये विकल्प नियंत्रित करेंगे कि इन-मेमोरी अस्थायी तालिका कितनी बड़ी हो सकती है, इससे पहले कि इसे बहुत बड़ा समझा जाए और फिर पृष्ठों को अस्थायी MyISAM तालिका के रूप में डिस्क पर रखा जाए। ये मान जितने बड़े होंगे, आपको 'डिस्क पर tmp तालिका में कॉपी करने' की संभावना उतनी ही कम होगी। कृपया, सुनिश्चित करें कि आपके सर्वर में पर्याप्त रैम है और अधिकतम_कनेक्शन यदि किसी एकल डीबी कनेक्शन को अपने स्वयं के अस्थायी तालिकाओं के लिए बहुत अधिक रैम की आवश्यकता होती है, तो इसे सामान्य रूप से कॉन्फ़िगर किया जाता है।
विकल्प #2 :tmp तालिकाओं के लिए RAM डिस्क का उपयोग करें
आपको Linux में RAM डिस्क को कॉन्फ़िगर करने में सक्षम होना चाहिए और फिर tmpdir mysql में वह फ़ोल्डर होना चाहिए जिसमें RAM डिस्क माउंट की गई हो।
शुरुआत के लिए, OS में RAM डिस्क कॉन्फ़िगर करें
Linux में /var/tmpfs नाम का एक फोल्डर बनाएं
mkdir /var/tmpfs
इसके बाद, इस लाइन को /etc/fstab में जोड़ें (उदाहरण के लिए, यदि आप 16GB RAM डिस्क चाहते हैं)
none /var/tmpfs tmpfs defaults,size=16g 1 2
और सर्वर को रीबूट करें।
नोट:बिना रीबूट किए रैम डिस्क बनाना संभव है। सर्वर रिबूट के बाद रैम डिस्क रखने के लिए अभी भी उपरोक्त लाइन को /etc/fstab में जोड़ना याद रखें।
अब MySQL के लिए:
इस लाइन को /etc/my.cnf
. में जोड़ें[mysqld]
tmpdir=/var/tmpfs
और mysql को पुनरारंभ करें।
विकल्प #3 :RAM डिस्क ASAP में tmp तालिका प्राप्त करें (यह मानते हुए कि आप पहले विकल्प #2 लागू करते हैं)
आप जितनी जल्दी हो सके tmp तालिकाओं को RAM डिस्क में बाध्य करना चाह सकते हैं ताकि MySQL अपने पहियों को बड़े इन-मेमोरी tmp तालिकाओं को RAM डिस्क में स्थानांतरित करने के लिए स्पिन न करे। बस इसे /etc/my.cnf में जोड़ें:
[mysqld]
tmpdir=/var/tmpfs
tmp_table_size=2K
और MySQL को पुनरारंभ करें। यह सबसे नन्हा अस्थायी टेबल को भी रैम डिस्क में ही अस्तित्व में लाएगा। आप समय-समय पर ls -l /var/tmpfs
run चला सकते हैं अस्थायी तालिकाओं को आते और जाते देखने के लिए।
इसे आज़माएं !!!
चेतावनी
यदि आप 24/7 /var/tmpfs में अस्थायी तालिकाओं के अलावा कुछ नहीं देखते हैं, तो यह OS की कार्यक्षमता/प्रदर्शन को प्रभावित कर सकता है। यह सुनिश्चित करने के लिए कि /var/tmpfs अधिक आबादी वाले न हों, अपने प्रश्नों को ट्यून करें। एक बार जब आप ऐसा कर लेते हैं, तो आपको /var/tmpfs में कम tmp सारणियाँ दिखाई देनी चाहिए।