Det beror på vad du använder det till. Jag hatar att ge ett så generellt svar, men det är sant. Försök i allmänhet att få datatypen så specifik som du kan. Om dina strängar aldrig kommer att överskrida en övre gräns för tecken, välj VARCHAR
för det blir lite mer effektivt. Om du behöver mer utrymme, välj TEXT
. Om du inte är säker på hur mycket utrymme din text kommer att ta upp bör du förmodligen välja TEXT
; prestandaskillnaden är inte särskilt stor, och det är bättre att vara framtidssäker än att riskera att behöva ändra den senare när dina krav ändras. Bara mina två cent.
I kommentarerna påpekar Pitarou att om MySQL skapar en tillfällig tabell för din fråga (se det här
), TEXT
kolumner kommer inte att lagras i minnet och måste läsas från disken, vilket är mycket långsammare. (Källa
, längst ner på sidan.) Detta borde dock inte spela någon roll för de flesta frågor.
Om någon undrade hur PostgreSQL kan jämföras, hittade jag det här riktmärket som visar att CHAR, VARCHAR och TEXT alla presterar lika bra. Så om du använder Postgres spelar det ingen roll vilken typ du använder.