Estoy empezando a investigar la optimización para mi base de datos MySQL. Según lo que estoy leyendo, la indexación parece ser una buena idea, así que quiero crear un índice en una de mis columnas VARCHAR
, en una tabla que utiliza el motor MyISAM
.Tamaños de índice en MySQL
Por lo que estoy leyendo, entiendo que un índice está limitado a un tamaño de 1,000 bytes. Sin embargo, un carácter VARCHAR
tiene 3 bytes de tamaño. ¿Eso significa que si quiero indexar una columna VARCHAR
con 50 filas, necesito un prefijo de índice de 6 caracteres? (1,000 bytes/50 filas/3 bytes por carácter = 6.66)
Si es así, parece un poco complicado, y es por eso que estoy cuestionando mi comprensión. Parece bastante extraño que solo pueda indexar 333 filas en una columna VARCHAR
, usando un prefijo de 1 carácter.
¿Echo de menos algo?
Ah, ¿entonces la restricción de 1000 bytes solo se aplica al nombre de la columna? – Tommy
@Tommy: se aplica a la cantidad máxima de caracteres que puede almacenar en una columna indexada de un solo registro. – Quassnoi
Gracias, eso lo aclara un poco. Entonces, cada registro en la columna que quiero indexar puede tener 333 caracteres. ¿Cuál es la razón de usar prefijo de índice con menos de 333 caracteres? El ejemplo en la referencia de MySQL usa un prefijo de 10 caracteres. – Tommy