Er zijn verschillende plaatsen waar VARCHAR en TEXT wel of niet verschillen. Sommige dingen die ik zeg:
- Als de maximale lengte meer is dan 512 tekens , ga met
TEXT. - Gebruik nooit
TINYTEXT-- het heeft alleen negatieven ten opzichte vanVARCHAR(255). - Gebruik
VARCHAR(255)niet; kies een redelijk maximum in plaats van 255. (Dit is een kleine optimalisatie met betrekking tot de tijdelijke tabel in complexe zoekopdrachten.) - Gebruik
CHARalleen voor dingen die echt een vaste lengte hebben. In bijna al deze gevallen, volgCHARACTER SET ascii(of latijn1). (Anders neemt het meer ruimte in dan je verwacht. - Gebruik
CHARACTER SET ut8mb4. (Uitzonderingen worden steeds zeldzamer.)
(Sorry, ik dwaal af. Terug naar het onderwerp...)
Ik indexeer, in lay-out van InnoDB-rijen (er zijn 4 verschillende ROW_FORMATs ), enz, VARCHAR(513) zal in wezen niet te onderscheiden zijn van TEXT .
Een van de weinige argumenten voor VARCHAR is dat het de winkel beperkt tot de opgegeven lengte. Maar hoe vaak is dat belangrijk?