English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

¿Puede haber índices basados en funciones en MySQL?

En versiones inferiores a5.6En la versión de MySQL, no se puede usar un índice basado en una función. Primero, tendremos que crear una tabla.

mysql> create table FunctionIndexDemo
   - > (
   - > FirstName varchar(100)
   - > );

Veamos la sintaxis para crear un índice basado en una función.

create index index_name on yourTableName (column_name(IntegerSize));

Esto es la consulta.

mysql> create index indFirstName on FunctionIndexDemo (FirstName(6));
Registros: 0 Duplicados: 0 Advertencias: 0

Verificar si el índice existe.

mysql> SHOW INDEX FROM FunctionIndexDemo;

Esto es la salida.

+-------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Tabla | No_unique | Nombre_clave | Secuencia_en_indice | Nombre_columna | Colación | Cardinalidad | Sub_part | Empaquetado | NULL | Tipo_de_indice | Comentario | Comentario_de_indice | Visible |
+-------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| functionindexdemo |          1 | indFirstName |            1 | FirstName | A | | 0 |        6 | NULL | SÍ | BTREE | | | SÍ |
+-------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
1 fila en conjunto (0.24 sec)
Tutoriales de Elasticsearch