Ada berbagai tempat di mana VARCHAR dan TEXT melakukan atau tidak berbeda. Beberapa hal yang saya katakan:
- Jika panjang maksimum lebih dari 512 karakter , gunakan
TEXT. - Jangan pernah menggunakan
TINYTEXT-- hanya memiliki negatif relatif terhadapVARCHAR(255). - Jangan gunakan
VARCHAR(255); pilih maks yang masuk akal daripada 255. (Ini adalah pengoptimalan kecil yang berkaitan dengan tabel temp dalam kueri kompleks.) - Gunakan
CHARhanya untuk hal-hal yang benar-benar panjangnya tetap. Dalam hampir semua kasus seperti itu, tempelkanCHARACTER SET ascii(atau latin1). (Jika tidak, ini akan memakan lebih banyak ruang daripada yang Anda harapkan. - Gunakan
CHARACTER SET ut8mb4. (Pengecualian menjadi semakin langka.)
(Maaf, saya ngelantur. Kembali ke topik...)
Saya mengindeks, dalam tata letak baris InnoDB (ada 4 ROW_FORMATs yang berbeda ), dll, VARCHAR(513) pada dasarnya tidak dapat dibedakan dari TEXT .
Salah satu dari sedikit argumen untuk VARCHAR adalah bahwa itu membatasi toko untuk panjang yang diberikan. Tapi seberapa sering itu penting?