Зависи за какво го използвате. Мразя да давам такъв общ отговор, но е вярно. Като цяло, опитайте се да получите възможно най-специфичен тип данни. Ако вашите низове никога няма да надхвърлят някаква горна граница от знаци, тогава използвайте VARCHAR
защото ще бъде малко по-ефективно. Ако имате нужда от повече място, използвайте TEXT
. Ако не сте сигурни колко място ще заеме вашият текст, вероятно трябва да използвате TEXT
; разликата в производителността не е много голяма и е по-добре да бъдете надеждни, отколкото да рискувате да го промените по-късно, когато вашите изисквания се променят. Само моите два цента.
В коментарите Pitarou посочва, че ако MySQL създаде временна таблица за вашата заявка (вижте това
), TEXT
колоните няма да се съхраняват в паметта и ще трябва да се четат от диска, което е много по-бавно. (Източник
, долната част на страницата.) Това обаче не би трябвало да има значение за повечето заявки.
В случай, че някой се чудеше как се сравнява PostgreSQL, намерих този показател това показва, че CHAR, VARCHAR и TEXT се представят еднакво добре. Така че, ако използвате Postgres, няма значение какъв тип използвате.