Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Usando varchar(MAX) vs TEXT no SQL Server


O VARCHAR(MAX) type é um substituto para TEXT . A diferença básica é que um TEXT type sempre armazenará os dados em um blob, enquanto o VARCHAR(MAX) type tentará armazenar os dados diretamente na linha, a menos que exceda a limitação de 8k e, nesse ponto, os armazene em um blob.

O uso da instrução LIKE é idêntico entre os dois tipos de dados. A funcionalidade adicional VARCHAR(MAX) oferece é que também pode ser usado com = e GROUP BY como qualquer outro VARCHAR coluna pode ser. No entanto, se você tiver muitos dados, terá um grande problema de desempenho usando esses métodos.

Em relação a se você deve usar LIKE para pesquisar, ou se você deve usar Indexação de Texto Completo e CONTAINS . Esta questão é a mesma independentemente de VARCHAR(MAX) ou TEXT .

Se você estiver pesquisando grandes quantidades de texto e o desempenho for fundamental, use um Índice de texto completo .

LIKE é mais simples de implementar e geralmente é adequado para pequenas quantidades de dados, mas tem um desempenho extremamente ruim com dados grandes devido à incapacidade de usar um índice.