Cómo MySQL agrega un índice a una tabla existente

Cómo MySQL agrega un índice a una tabla existente
Un índice, también conocido como índices, se refiere a una estructura de datos que mejora las velocidades de recuperación de datos en una tabla MySQL. Si una tabla no tiene un índice, la ejecución de una consulta solicita a MySQL para escanear todas las filas hasta que encuentre la información solicitada. Si la tabla tiene muchos registros, este proceso llevará mucho tiempo completarse, afectando significativamente el rendimiento de la base de datos.

Este tutorial le mostrará cómo crear un índice en una tabla MySQL para tablas existentes y nuevas.

Antes de poder ejecutar consultas y crear índices, veamos algunos conceptos de índice MySQL.

Tipos de índices mysql

MySQL admite dos tipos de índices:

  1. Un índice primario o agrupado
  2. Índice secundario

MySQL crea automáticamente un índice, llamado primario, cada vez que creamos una tabla con una clave principal. Dependiendo del motor de la base de datos, si la clave principal o la clave única no está disponible en una tabla, MySQL puede crear una clave oculta en la columna con valores de identificación.

El índice primario creado por MySQL se almacena junto con los datos en la misma tabla. Otros índices que existen dentro de una tabla, aparte del índice primario, se conocen como índices secundarios.

Cómo agregar un índice a una tabla existente

Aunque MySQL recomienda agregar un índice durante la creación de la tabla, hay algunos casos en los que es posible que deba agregar un índice a una tabla existente, como en una columna de acceso regularmente.

Para agregar un índice a una tabla existente, podemos usar la consulta alter.

Tomemos una base de datos de muestra con las tablas como se muestra en la consulta a continuación:

Crear base de datos si no existe mySQL_Indices;
Usar mysql_indices;
Crea Table Treks (
ID int Auto_Increment Key primario,
CPT_NAME
Varchar (255) no nulo,
barco
Varchar (255) no nulo
);
Insertar en Treks (CPT_Name, Ship)
Valores ('Carol Freeman', 'USS Cerritos'),
('Christopher Pike', 'USS Discovery'),
('Jean-Luc Picard', 'USS Enterprise'),
('James T. Kirk ',' USS Enterprise '),
('Jonathan Archer', 'USS Enterprise');

En el ejemplo anterior, MySQL creará una clave de índice usando la columna de ID porque se especifica como la clave principal.

Puede verificar esto usando la consulta:

Mostrar índice de Treks;

Para crear un índice personalizado, use la consulta alter como:

Alter tabla treks agregar índice (cpt_name);

En el ejemplo anterior, usamos el CPT_Name como la segunda clave principal. Para mostrar los índices, use la consulta:

Si no se especifica, MySQL predecirá cualquier índice como un árbol B. Otros tipos de índice compatibles incluyen hash y fulltext.

El tipo de índice dependerá del motor de almacenamiento para la tabla especificada.

Para crear un índice para una columna o lista de columnas, utilizamos la consulta Crear índice. Por ejemplo, para crear un índice para el "barco: columna, podemos hacer:

Crear index ship_index en treks (buque);

Si ejecutamos la consulta de índice de espectáculos en la tabla, deberíamos ver un índice llamado "ship_index" en la columna "buque".

Cómo agregar un índice a una nueva tabla

La forma recomendada es crear un índice o índices al crear una tabla. Para hacer esto, especifique las columnas para usar como índices dentro de la consulta index ().

Comencemos soltando la mesa de caminatas en el ejemplo anterior:

Drop de la mesa Treks;

A continuación, recreemos la tabla y especifiquemos el índice durante la creación. Una consulta de ejemplo es:

Crea Table Treks (
ID int Auto_Increment Key primario,
CPT_NAME
Varchar (255) no nulo,
barco
Varchar (255) no nulo,
Índice (barco)
);
Insertar en Treks (CPT_Name, Ship)
Valores ('Carol Freeman', 'USS Cerritos'),
('Christopher Pike', 'USS Discovery'),
('Jean-Luc Picard', 'USS Enterprise'),
('James T. Kirk ',' USS Enterprise '),
('Jonathan Archer', 'USS Enterprise');

En la consulta de ejemplo anterior, agregamos la columna del barco como un índice durante la creación de la tabla. Dado que la identificación es la clave principal, MySQL la agrega automáticamente como un índice.

Mostrar índice de Treks;

Conclusión

En este tutorial, aprendió cómo agregar un índice a una tabla existente, agregar un índice para una columna y crear un índice durante la creación de la tabla.