sql >> Databasteknik >  >> RDS >> Sqlserver

Varför inte använda varchar(max)?

Mitt svar på detta handlar inte om användningen av Max, lika mycket som det handlar om anledningen till VARCHAR(max) vs TEXT.

I min bok; För det första, såvida du inte kan vara helt säker på att du aldrig kommer att koda något annat än engelsk text och folk inte hänvisar till namn på utländska platser, då bör du använda NVARCHAR eller NTEXT.

För det andra är det vad fälten låter dig göra.

TEXT är svårt att uppdatera i jämförelse med VARCHAR, men du får fördelen av Full Text Indexing och massor av smarta saker.

Å andra sidan har VARCHAR(MAX) en viss tvetydighet, om storleken på cellen är <8000 tecken kommer den att behandlas som raddata. Om den är större kommer den att behandlas som en LOB för lagringsändamål. Eftersom du inte kan veta detta utan att fråga RBAR, kan detta ha optimeringsstrategier för platser där du behöver vara säker på din data och hur många läsningar den kostar.

Annars, om din användning är relativt vardaglig och du inte förväntar dig att ha problem med storleken på data (IE du använder .Net och behöver därför inte bry dig om storleken på dina sträng-/char*-objekt) då går det bra att använda VARCHAR(max).



  1. Hur anger man JPA-anslutningskolumnnamn?

  2. SQL:Hitta det genomsnittliga antalet dagar mellan löpningarna för varje löpare

  3. Databasbackups - Jämför MariaDB Mariabackup och Percona Xtrabackup

  4. Databasdesign 101:Partitioner i MySQL