Het hangt af van waar je het voor gebruikt. Ik haat het om zo'n algemeen antwoord te geven, maar het is waar. Probeer in het algemeen het gegevenstype zo specifiek mogelijk te krijgen. Als uw tekenreeksen nooit een bovengrens van tekens zullen overschrijden, gebruik dan VARCHAR
omdat het een beetje efficiënter zal zijn. Als je meer ruimte nodig hebt, gebruik dan TEXT
. Als u niet zeker weet hoeveel ruimte uw tekst in beslag zal nemen, moet u waarschijnlijk kiezen voor TEXT
; het prestatieverschil is niet erg groot, en het is beter om toekomstbestendig te zijn dan het risico te lopen het later te moeten wijzigen wanneer uw vereisten veranderen. Gewoon mijn twee cent.
In de opmerkingen wijst Pitarou erop dat, als MySQL een tijdelijke tabel voor uw zoekopdracht maakt (zie dit
), TEXT
kolommen worden niet in het geheugen opgeslagen en moeten van de schijf worden gelezen, wat veel langzamer is. (Bron
, onderaan de pagina.) Dit zou echter voor de meeste vragen niet van belang moeten zijn.
Voor het geval iemand zich afvroeg hoe PostgreSQL zich verhoudt, vond ik deze benchmark dat laat zien dat CHAR, VARCHAR en TEXT allemaal even goed presteren. Dus als je Postgres gebruikt, maakt het niet uit welk type je gebruikt.