ऐसे कई स्थान हैं जहां VARCHAR
और TEXT
करो या मत करो। कुछ बातें मैं कहता हूं:
- यदि अधिकतम लंबाई 512 से अधिक है वर्ण ,
TEXT
. के साथ जाएं । - कभी भी
TINYTEXT
का उपयोग न करें -- इसमेंVARCHAR(255)
. के सापेक्ष केवल नकारात्मक है । VARCHAR(255)
का उपयोग न करें; 255 के बजाय एक उचित अधिकतम चुनें। (यह जटिल प्रश्नों में अस्थायी तालिका से संबंधित एक मामूली अनुकूलन है।)CHAR
का उपयोग करें केवल उन चीजों के लिए जो वास्तव में निश्चित लंबाई हैं। ऐसे लगभग सभी मामलों में,CHARACTER SET ascii
. पर ध्यान दें (या लैटिन 1)। (अन्यथा यह आपकी अपेक्षा से अधिक स्थान लेगा।CHARACTER SET ut8mb4
का उपयोग करें . (अपवाद अधिक दुर्लभ होते जा रहे हैं।)
(क्षमा करें, मैं पीछे हट गया। विषय पर वापस...)
मैं अनुक्रमणिका, InnoDB पंक्तियों के लेआउट में (4 अलग-अलग ROW_FORMATs
हैं ), आदि, VARCHAR(513)
अनिवार्य रूप से TEXT
. से अलग नहीं किया जा सकेगा ।
VARCHAR
. के लिए कुछ तर्कों में से एक यह है कि यह स्टोर को दी गई लंबाई तक सीमित करता है। लेकिन यह कितनी बार महत्वपूर्ण है?