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

पहली क्वेरी पर mysql धीमा, फिर संबंधित प्रश्नों के लिए तेज़

innodb डेटा फ़ाइलों के पृष्ठ innodb बफर पूल में कैश हो जाते हैं। आप यही उम्मीद करेंगे। फ़ाइलों को पढ़ना धीमा है, यहां तक ​​कि अच्छी हार्ड ड्राइव पर भी, विशेष रूप से रैंडम रीड जो कि ज्यादातर डेटाबेस देखते हैं।

हो सकता है कि आपकी पहली क्वेरी किसी प्रकार का टेबल स्कैन कर रही हो जो बहुत सारे पेजों को बफर पूल में खींचती है, फिर उन तक पहुंचना तेज होता है। या ऐसा ही कुछ।

मैं यही अपेक्षा करता हूं।

आदर्श रूप से, सभी तालिकाओं के लिए एक ही इंजन का उपयोग करें (अपवाद:सिस्टम टेबल, अस्थायी टेबल (शायद) और बहुत छोटी टेबल या अल्पकालिक)। अगर आप ऐसा नहीं करते हैं तो उन्हें राम के लिए लड़ना होगा।

मान लें कि आपकी सभी टेबलें निर्दोष हैं, बफर पूल को सर्वर के फिजिकल रैम के 75% तक उपयोग करें (यह मानते हुए कि आप मशीन पर बहुत सारे अन्य कार्य नहीं चलाते हैं)।

तब आप अपने डेटाबेस के लगभग 12G को ram में फ़िट करने में सक्षम होंगे, इसलिए एक बार जब यह "वार्म अप" हो जाता है, तो आपके डेटाबेस का "सबसे अधिक उपयोग किया जाने वाला" 12G RAM में होगा, जहाँ इसे एक्सेस करना अच्छा और तेज़ है।

Mysql के कुछ उपयोगकर्ता उत्पादन सर्वर को फिर से शुरू करने के बाद उन्हें किसी अन्य मशीन से कॉपी किए गए प्रश्नों को थोड़ी देर के लिए भेजकर "गर्म" करते हैं (ये प्रतिकृति दास होंगे) जब तक कि वे उन्हें अपने उत्पादन पूल में नहीं जोड़ते। यह कैशे के ठंडे होने पर दिखाई देने वाले अत्यधिक धीमेपन से बचा जाता है। उदाहरण के लिए, Youtube ऐसा करता है (या कम से कम यह करता था; Google ने उन्हें खरीदा और वे अब Google-fu का उपयोग कर सकते हैं)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 सेकंड से कम समय में हाइबरनेट का उपयोग करके mysql में 100000 पंक्तियों को सम्मिलित करने की आवश्यकता है

  2. एक डेटाबेस में एक ऐरे और उसकी चाबियों को सहेजने का एक प्रभावी तरीका

  3. MySQL में प्रति दिन संचयी कुल उपयोगकर्ता कैसे प्राप्त करें

  4. MySQL को तालिका से लापता आईडी मिलती है

  5. only_full_group_by मोड के क्या लाभ हैं?