sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor ikke bruge varchar(max)?

Mit svar på dette handler ikke om brugen af ​​Max, så meget som det handler om årsagen til VARCHAR(max) vs TEXT.

I min bog; Først og fremmest, medmindre du kan være helt sikker på, at du aldrig vil kode andet end engelsk tekst, og folk ikke vil henvise til navne på udenlandske steder, så skal du bruge NVARCHAR eller NTEXT.

For det andet er det, hvad felterne tillader dig at gøre.

TEXT er svær at opdatere i forhold til VARCHAR, men du får fordelen ved fuld tekstindeksering og en masse smarte ting.

På den anden side har VARCHAR(MAX) en vis tvetydighed, hvis størrelsen af ​​cellen er <8000 tegn, vil den blive behandlet som rækkedata. Hvis det er større, vil det blive behandlet som en LOB til opbevaringsformål. Fordi du ikke kan vide dette uden at forespørge RBAR, kan dette have optimeringsstrategier for steder, hvor du skal være sikker på dine data, og hvor mange læsninger det koster.

Ellers, hvis din brug er relativt hverdagsagtig, og du ikke forventer at have problemer med størrelsen af ​​data (IE, du bruger .Net og derfor ikke behøver at bekymre dig om størrelsen af ​​dine streng/char*-objekter) så er det fint at bruge VARCHAR(max).



  1. Sådan opsætter du en forbindelsestimeout afhængig af brugerlogin i MySQL

  2. Cyklusdetektion med rekursiv subquery factoring

  3. Hent funktioner DDL kommando

  4. Indeks flere kolonner m/ Ruby on Rails