Colección de citas famosas - Colección de máximas - ¿Qué es un índice? ¿Qué tipos de índices existen? ¿Cuándo es un buen momento para utilizar índices?

¿Qué es un índice? ¿Qué tipos de índices existen? ¿Cuándo es un buen momento para utilizar índices?

Los índices se utilizan para encontrar rápidamente registros con valores específicos y todos los índices de MySQL se guardan en forma de árboles B. Sin un índice, MySQL debe escanear todos los registros de la tabla completa comenzando desde el primer registro al ejecutar una consulta hasta encontrar un registro que cumpla con los requisitos. Cuantos más registros haya en la tabla, más cara será esta operación. Si se ha creado un índice en la columna como condición de búsqueda, MySQL puede encontrar rápidamente la ubicación del registro de destino sin escanear ningún registro. Si una tabla tiene 1000 registros, encontrar registros a través del índice es al menos 100 veces más rápido que escanear los registros secuencialmente.

Tipo de índice

MySQL proporciona una variedad de tipos de índice para elegir:

Índice total

Este es el tipo de índice más básico , no tiene restricciones como la unicidad. Los índices regulares se pueden crear de las siguientes maneras:

Crear un índice, como crear un índice en el nombre de la tabla (lista de columnas);

Modificar la tabla, como alterar el nombre de la tabla a agregar un índice (lista de columnas) );

Especifique un índice al crear una tabla, como crear tabla tabla...], índice [nombre del índice] (lista de columnas); >

Índice de unicidad

Este índice es básicamente el mismo que el "índice ordinario" anterior, pero hay una diferencia: todos los valores en la columna de índice solo pueden aparecer una vez, es decir, debe ser único. Puede crear un índice único de las siguientes maneras:

Crear un índice, como crear un índice único en el nombre de la tabla (lista de columnas);

Modificar la tabla, como alterar la tabla nombre de la tabla y agregue una lista única (lista de columnas);

Especifique el índice al crear la tabla, por ejemplo, cree la tabla nombre de la tabla ([...], único[nombre del índice] (lista de columnas) ).

);

Clave principal

La clave principal es el único índice, pero debe especificarse como la "clave principal". Si alguna vez ha trabajado con columnas de tipo AUTO_INCREMENT, es posible que ya esté familiarizado con conceptos como las claves primarias. La clave principal generalmente se especifica al crear la tabla, por ejemplo, "crear tabla nombre de tabla ([...], clave principal);". Sin embargo, también podemos agregar una clave principal modificando la tabla, como "alterar el nombre de la tabla agregar clave principal". . Cada tabla sólo puede tener una clave principal.

Índice de texto completo

MySQL admite el índice de texto completo y la búsqueda de texto completo a partir de la versión 3.23.23. En MySQL, el tipo de índice de texto completo es FULLTEXT. Los índices de texto completo se pueden crear en columnas de tipo VARCHAR o TEXT. Puede crearse mediante el comando CREATE TABLE, o mediante el comando ALTER TABLE o CREATE INDEX. Para conjuntos de datos grandes, crear un índice de texto completo mediante el comando ALTER TABLE (o CREATE INDEX) es más rápido que insertar registros en una tabla vacía con un índice de texto completo. La indexación de texto completo no se tratará en el próximo artículo. Para obtener más información, consulte la documentación de MySQL.

Índice de una sola columna e índice de varias columnas

El índice puede ser un índice de una sola columna o un índice de varias columnas. Ilustremos la diferencia entre estas dos métricas con un ejemplo concreto. Supongamos que existe una tabla de personas:

Crear tabla personas(peopleid SMALLINT NOT NULL AUTO _ INCREMENT, nombre CHAR(50)

NOT NULL, apellido CHAR(50) NOT NULL, edad SMALLINT NOT NULL, townid SMALLINT NOT

NULL, clave principal (id de personas));