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 में अपग्रेड करें जहां एक नया स्टोरेज इंजन जो चर-लंबाई वाली पंक्तियों का समर्थन करता है, आंतरिक अस्थायी तालिकाओं के लिए उपयोग किया जाता है।