Database sangat memperhatikan kinerja - kecepatan dan meminimalkan penyimpanan. Di sebagian besar bagian lain dunia komputer, Anda tidak akan terganggu dengan berapa banyak karakter dalam string karakter Anda; bisa jadi satu, bisa juga seluruh isi ensiklopedia; itu semua hanya string. Bahkan, banyak bahasa bahkan tidak mengganggu Anda apakah itu string atau angka.
Tetapi ketika komputer menjadi lebih cepat dan mendapatkan lebih banyak memori, orang memasukkan lebih banyak data ke dalam basis data mereka dan melakukan permintaan yang lebih menarik. Untuk basis data, CPU dan memori hanya membatasi hari ini seperti pada hari-hari memori utama 64Kb dan 10 MB hard drive (pada komputer mainframe ).
Jumlah byte yang pasti jauh lebih mudah untuk ditangani daripada jumlah panjang variabel. 10 byte jauh lebih mudah untuk ditangani dari 1.000.000. Jadi basis data Anda ingin Anda memberikannya petunjuk sehingga dapat memberi Anda satu gigabyte hasil dari terrabytes data dalam mikrodetik. Jika Anda tidak menggunakan database Anda dengan susah payah, Anda tidak akan membutuhkan kecepatan yang ditawarkannya dan akan terganggu dengan pertanyaan yang tidak perlu. Tetapi jika Anda benar-benar membutuhkan kinerja, Anda akan dengan senang hati memberikan beberapa petunjuk.
Seperti disebutkan dalam jawaban lain, gunakan char
jika selalu menggunakan sejumlah karakter tertentu, varchar
jika panjangnya dapat bervariasi tetapi tidak terlalu besar ( tebakan saya kebanyakan DB memperlakukannya sebagai char
atau text
tergantung pada ukuran), dan text
jika itu bisa berapa pun panjangnya. Jika SQL Anda mencoba menggunakan text
kolom, mungkin lebih baik untuk meringkasnya entah bagaimana dan meletakkannya di kolom char
kecil varchar
juga, lalu lakukan where
dan lakukan order by
itu. Tentu saja, itu hanya jika kinerja penting bagi Anda.
text
sudah usang. Ada juga pertimbangan penggunaan yang terkait dengan tempat data disimpan dan bagaimana hal itu diakses.