Tergantung untuk apa Anda menggunakannya. Saya benci memberikan jawaban yang begitu umum, tetapi itu benar. Secara umum, cobalah untuk mendapatkan tipe data sespesifik mungkin. Jika string Anda tidak akan pernah melebihi batas atas karakter, gunakan VARCHAR
karena akan sedikit lebih efisien. Jika Anda membutuhkan lebih banyak ruang, gunakan TEXT
. Jika Anda tidak yakin berapa banyak ruang yang akan digunakan teks Anda, Anda mungkin harus menggunakan TEXT
; perbedaan kinerjanya tidak terlalu besar, dan lebih baik tahan terhadap masa depan daripada mengambil risiko harus mengubahnya nanti saat persyaratan Anda berubah. Hanya dua sen saya.
Dalam komentar, Pitarou menunjukkan bahwa, jika MySQL membuat tabel sementara untuk kueri Anda (lihat ini
), TEXT
kolom tidak akan disimpan dalam memori dan harus dibaca dari disk, yang jauh lebih lambat. (Sumber
, di bagian bawah halaman.) Ini seharusnya tidak menjadi masalah untuk sebagian besar kueri.
Jika ada yang bertanya-tanya bagaimana PostgreSQL membandingkan, saya menemukan patokan ini yang menunjukkan bahwa CHAR, VARCHAR, dan TEXT semuanya berkinerja sama baiknya. Jadi, jika Anda menggunakan Postgres, tidak masalah jenis apa yang Anda gunakan.