Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डिस्क पर tmp टेबल पर कॉपी करना छोड़ें mysql

इसके प्रभाव को कम करने के लिए आप दो चीजें कर सकते हैं

विकल्प #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 सारणियाँ दिखाई देनी चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप प्रत्येक क्वेरी पर पुन:कनेक्ट किए बिना PHP में MySQL से कुशलतापूर्वक कैसे कनेक्ट होते हैं?

  2. मैं MySQL में अपने अंतिम डिलीट कमांड को कैसे रोल बैक कर सकता हूं?

  3. मैं एक MySQL टेबल पर कस्टम चेक बाधा कैसे जोड़ूं?

  4. सशर्त ट्रिगर के लिए Django माइग्रेशन sql

  5. सभी समाचार और सभी टिप्पणियां प्राप्त करें