Le pregunté a Google, pero todavía estoy confundido.Indexar una columna varchar
1) ¿Hay algún problema al indexar una columna Varchar? Cuando no debería, y Cuándo debería
2) Indexar una columna de carbón VS Varchar column.
Gracias
Le pregunté a Google, pero todavía estoy confundido.Indexar una columna varchar
1) ¿Hay algún problema al indexar una columna Varchar? Cuando no debería, y Cuándo debería
2) Indexar una columna de carbón VS Varchar column.
Gracias
1 - Índice de si se está consultando y es lo suficientemente selectiva. Si es una columna donde el 90% de los valores son iguales, no tendrá mucho sentido.
2 - Esto no es una pregunta, pero supongo que quieres saber si deberías. Sí, si lo consulta y cumple con los criterios anteriores.
De hecho, la indexación (N) columnas varchar funciona bien. Solo tengo que vigilar la limitación del ancho de 900 bytes. – StuartLC
Existen problemas de índice con varchar (max) y nvarchar (max) por lo que no deben usarse a menos que pretenda desbordar el tamaño del varchar y nvarchar ordinarios. campo. – HLGEM
@HLGEM - ¿puedes dar más detalles? – JNK
el rendimiento general
En teoría/diseño, tiene un modelo lógico, donde, por ejemplo, nombre de usuario es único.
Sin embargo, en el momento de la implementación, usted sabe que usar esto es costoso (caso, acentos, longitud, etc.) comparado con el uso de una columna sustituta "userid" que es más eficiente como índice. Diciendo eso, tendrías un índice de nombre de todos modos porque debería ser único.
La diferencia sería donde usa este índice: si está en una tabla secundaria como columna de clave externa, no es una buena idea. O como un índice agrupado.
Como un índice único para una tabla sin FK, no es ni aquí ni allí.
Finalmente, usaría el char/varchar para cosas como el lenguaje ISO o los códigos de moneda (DE, EN, GBP, CHF, etc.). Pero mi corte varía para ser honesto ...
varchar
tenga una capacidad máxima de 50 caracteres.char
vs varchar
se fijan vs tamaño variable (es decir. char(100)
) siempre tiene 100 bytes de datos en la página, varchar(100)
tarda hasta 100)
Si Puedes apoyar una respuesta existente o tener algo que agregar, por favor hazlo. – Costa