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

Utf8 से utf8mb4 में बदलने से मेरा डेटाबेस धीमा क्यों हो गया?

utf वास्तव में utfmb3 है और प्रति वर्ण अधिकतम 3 बाइट्स का उपयोग कर सकता है जबकि utfmb4 प्रति वर्ण 4 बाइट्स का उपयोग कर सकता है। VARCHAR कॉलम के लिए यह सामान्य रूप से अधिक अंतर नहीं करता है क्योंकि MySQL केवल उतने ही बाइट्स को स्टोर करेगा जितनी जरूरत है (जब तक कि आपने ROW_FORMAT=FIXED के साथ अपनी MyISAM टेबल नहीं बनाई है)।

हालाँकि, क्वेरी निष्पादन के दौरान, MySQL मेमोरी स्टोरेज इंजन में अस्थायी टेबल बना सकता है जो चर-लंबाई वाली पंक्तियों का समर्थन नहीं करता है। इन अस्थायी तालिकाओं का अधिकतम आकार होता है, और यदि उस आकार को पार कर लिया जाता है, तो अस्थायी तालिकाओं को MyISAM/InnoDB (MySQL के आपके संस्करण के आधार पर) में तालिकाओं में बदल दिया जाएगा। स्थिति चर Created_tmp_disk_tables ऐसा होने पर हर बार वृद्धि की जाएगी। अगर ऐसा है, तो यह देखने की कोशिश करें कि क्या यह max_heap_table_size के मान को बढ़ाने में मदद करता है या नहीं और tmp_table_size

वैकल्पिक रूप से, MySQL 8.0 में अपग्रेड करें जहां एक नया स्टोरेज इंजन जो चर-लंबाई वाली पंक्तियों का समर्थन करता है, आंतरिक अस्थायी तालिकाओं के लिए उपयोग किया जाता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सूची <int> को mysql पैरामीटर में जोड़ें

  2. अन्य तालिका मान के आधार पर MySQL अद्यतन तालिका

  3. इस SQL ​​​​कथन को कैसे लिखें?

  4. फ़ील्ड की गतिशील संख्या के साथ MySQL डिज़ाइन

  5. MySQL इंजेक्शन - अद्यतन/हटाने के लिए चयन क्वेरी का उपयोग करें