Saltar al contenido

Usando varchar (MAX) vs TEXT en SQL Server

Solución:

los VARCHAR(MAX) tipo es un reemplazo para TEXT. La diferencia básica es que un TEXT tipo siempre almacenará los datos en un blob mientras que el VARCHAR(MAX) type intentará almacenar los datos directamente en la fila a menos que exceda la limitación de 8k y en ese momento los almacene en un blob.

El uso de la declaración LIKE es idéntico entre los dos tipos de datos. La funcionalidad adicional VARCHAR(MAX) te da es que también se puede usar con = y GROUP BY como cualquier otro VARCHAR columna puede ser. Sin embargo, si tiene muchos datos, tendrá un gran problema de rendimiento al utilizar estos métodos.

En cuanto a si debe usar LIKE para buscar, o si debe usar Indexación de texto completo y CONTAINS. Esta pregunta es la misma independientemente de VARCHAR(MAX) o TEXT.

Si está buscando una gran cantidad de texto y el rendimiento es clave, debe utilizar un Índice de texto completo.

LIKE es más simple de implementar y, a menudo, es adecuado para pequeñas cantidades de datos, pero tiene un rendimiento extremadamente bajo con grandes datos debido a su incapacidad para usar un índice.

Para texto grande, el índice de texto completo es mucho más rápido. Pero puedes índice de texto completo varchar(max)así como.

No puede buscar un campo de texto sin convertirlo de texto a varchar.

declare @table table (a text)
insert into @table values ('a')
insert into @table values ('a')
insert into @table values ('b')
insert into @table values ('c')
insert into @table values ('d')


select *
from @table
where a="a"

Esto da un error:

The data types text and varchar are incompatible in the equal to operator.

Donde esto no:

declare @table table (a varchar(max))

Curiosamente, LIKE todavía funciona, es decir

where a like '%a%'
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *