Veritabanları, performans - hızı ve depolamayı en aza indirgemekle yoğun bir şekilde ilgilenmektedir . Bilgisayar dünyasının diğer birçok yerinde, karakter dizginizde kaç karakter olduğu konusunda rahatsız olmayacaksınız; bir olabilir, bir ansiklopedi içeriğinin tamamı olabilir; hepsi sadece bir dize. Aslında, birçok dil sizi bir dize ya da sayı olup olmadığı konusunda rahatsız etmiyor bile.
Ancak bilgisayarlar hızlandıkça ve daha fazla bellek kazandıkça, insanlar veritabanlarına daha fazla veri koyar ve meraklı sorgular yapar. Bir veritabanı için CPU ve bellek, 64Kb ana bellek ve 10Mb sabit disk ( ana bilgisayarlarda) günlerinde olduğu gibi bugün de sınırlıdır .
Sabit bir bayt sayısı, değişken uzunluktaki bir sayıyla başa çıkmak için çok daha kolaydır. 10 bayt, 1.000.000'dan fazla işlemle daha kolaydır. Bu nedenle veritabanınız size bir ipucu vermenizi istiyor, böylece size mikrosaniye cinsinden terabayt veriden elde edilen sonuçları gigabayt verebilir. Veritabanınızı bu kadar zor kullanmıyorsanız, sunduğu hıza ihtiyacınız olmayacak ve gereksiz sorulara sinirleneceksiniz. Ancak performansa ihtiyacınız varsa, bazı ipuçları vermekten memnuniyet duyarsınız.
Diğer cevaplarda da belirtildiği gibi, char
her zaman belirli sayıda karakter kullanıyorsa varchar
kullanın, uzunluk değişebilir ancak çok büyük olmazsa kullanın ( tahminim çoğu DB'nin a char
veya text
boyutuna bağlı olarak davranması ) ve text
eğer herhangi bir uzunlukta olabilir. SQL çalışır bir kullanımı ise text
sütun, bir şekilde onu özetlemek ve bir koymak iyi olabilir char
ya da küçük varchar
de sütuna, daha sonra yapılacak where
'ın ve order by
' bu konuda bu. Tabii ki, bu sadece performans sizin için önemliyse.
text
kullanımdan kaldırılmıştır. Verilerin nerede saklandığı ve bu nedenle nasıl erişildiği ile ilgili kullanım kaygıları da vardır.