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

Utilizzo di varchar(MAX) vs TEXT su SQL Server

Il VARCHAR(MAX) type è un sostituto di TEXT . La differenza fondamentale è che un TEXT type memorizzerà sempre i dati in un BLOB mentre VARCHAR(MAX) type tenterà di archiviare i dati direttamente nella riga a meno che non superi il limite di 8k e a quel punto li archivia in un BLOB.

L'uso dell'istruzione LIKE è identico tra i due tipi di dati. La funzionalità aggiuntiva VARCHAR(MAX) ti dà è che può anche essere usato con = e GROUP BY come qualsiasi altro VARCHAR la colonna può essere. Tuttavia, se disponi di molti dati, avrai un enorme problema di prestazioni utilizzando questi metodi.

Per quanto riguarda se dovresti usare LIKE per cercare, o se dovresti usare Indicizzazione di testo completo e CONTAINS . Questa domanda è la stessa indipendentemente da VARCHAR(MAX) o TEXT .

Se stai cercando grandi quantità di testo e le prestazioni sono fondamentali, dovresti utilizzare un Indice di testo completo .

LIKE è più semplice da implementare ed è spesso adatto per piccole quantità di dati, ma ha prestazioni estremamente scarse con dati di grandi dimensioni a causa della sua impossibilità di utilizzare un indice.