Red de conocimiento informático - Aprendizaje de programación - ¿Qué es un índice en MySQL? ¿En qué situaciones se utilizan?

¿Qué es un índice en MySQL? ¿En qué situaciones se utilizan?

I. Índice ordinario

Este es el índice más básico sin restricciones. Hay varios métodos de creación:

1. Crear índice

El código es el siguiente:

CREAR ÍNDICE indexName ON mytable(username(length));

Para los tipos CHAR y VARCHAR, la longitud puede ser menor que la longitud real del campo; para los tipos BLOB y TEXT, se debe especificar la longitud, lo mismo a continuación.

2. Modifique la estructura de la tabla

El código es el siguiente:

ALTER mytable ADD INDEX [indexName] ON (nombre de usuario (longitud)) - Especificar directamente al crear la tabla.

CREATE TABLE mytable( ID INT NOT NULL, nombre de usuario VARCHAR(16) NOT NULL, INDEX [indexName] (nombre de usuario(longitud))

-- Sintaxis para eliminar el índice:

DROP INDEX [indexName] ON mytable;

II. Índice único

Es similar al índice ordinario anterior, excepto que: el valor del índice. columna Debe ser única, pero se permiten valores nulos. En el caso de un índice compuesto, la combinación de valores de columna debe ser única. El método de creación es el siguiente:

El código es el siguiente:

CREATE UNIQUE INDEX indexName ON mytable(username(length))

--Modificar el estructura de la tabla

ALTER mytable ADD UNIQUE [ indexName] ON (nombre de usuario (longitud))

-- Especificar directamente al crear la tabla

CREATE TABLE mytable( ID INT NOT NULL, nombre de usuario VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)));

3. Índice de clave primaria

Este es un índice único especial que no permite valores nulos. Generalmente, el índice de clave principal se crea al crear la tabla:

El código es el siguiente:

Crear TABLE mytable(ID INT NOT NULL, nombre de usuario VARCHAR(16) NOT NULL, PRIMARY KEY(ID)) ;

Por supuesto, también puedes usar el comando ALTER. Recuerde: una tabla sólo puede tener una clave principal.

4. Índice compuesto

Para comparar gráficamente índices de una sola columna e índices compuestos, agregue varios campos a la tabla:

El código es el siguiente. siguiente:

p>

Crear TABLE mytable(ID INT NOT NULL, nombre de usuario VARCHAR(16) NOT NULL, ciudad VARCHAR(50) NOT NULL, edad INT NOT NULL

En; Para mejorar aún más la eficiencia de MySQL, considere crear un índice compuesto.

Dos: Notas sobre el uso de índices

Algunos consejos y notas sobre el uso de índices:

1. Los índices no contendrán columnas de valores NULL

Mientras las columnas contengan valores NULL, no se incluirán en el índice, y siempre que una columna en el índice compuesto contenga un valor NULL, la columna no será válida para el índice compuesto. Por lo tanto, al diseñar una base de datos, no queremos que el valor predeterminado de un campo sea NULL.

2. Utilice índices cortos

Para indexar columnas de cadena, se debe especificar la longitud del prefijo siempre que sea posible. Por ejemplo, si tiene una columna CHAR(255), no indexe la columna completa si varios valores son únicos dentro de los primeros 10 o 20 caracteres. Los índices cortos no sólo aceleran las consultas sino que también ahorran espacio en disco y operaciones de E/S.

3. Ordenación de columnas de índice

La consulta MySQL solo usa un índice, por lo que si se ha usado un índice en la cláusula donde, las columnas ordenadas por no tendrán índice. Por lo tanto, si la clasificación predeterminada de la base de datos puede cumplir con los requisitos, no utilice la operación de clasificación; intente no incluir más de una columna en la clasificación y, si es necesario, es mejor crear índices compuestos para estas columnas.

4. Operación de declaración similar

Generalmente se desaconseja el uso de la operación similar. Si es necesario, cómo usarla también es un problema. Como "%aaa%" no utilizará el índice, pero como "aaa%" puede utilizar el índice.

5. No realice operaciones aritméticas en columnas

seleccione * de los usuarios donde YEAR(adddate)<2007;

realizará operaciones aritméticas en cada fila, lo que provocará un escaneo completo de la tabla debido a una falla en el índice, por lo que podemos cambiarlo a:

select * from users where adddate<'2007-01-01';

6. No utilice las operaciones NOT IN y <>.

Tres: Principios de optimización de SQL

Las reglas de simplificación comunes son las siguientes:

1 No tener más de cinco o más conexiones de tabla (JOIN)

p >

2. Considere usar tablas temporales o variables de tabla para almacenar resultados intermedios.

3. Utilice menos subconsultas

4. No anide las vistas demasiado profundamente. Generalmente, es mejor no anidar más de 2 vistas.

5. Cuantas más tablas estén conectadas, mayor será el tiempo de compilación, mayor será la sobrecarga de conexión y peor será el control del rendimiento.

6. Lo mejor es dividir la conexión en partes más pequeñas y ejecutarlas una por una en orden.

7. Prioriza aquellas conexiones que pueden reducir significativamente los resultados.

8. El beneficio de la división no es solo que reduce el tiempo dedicado a la optimización de SQL Server, sino también que permite que las sentencias SQL se ejecuten de una manera y en un orden predecibles.

Si tiene que realizar varias combinaciones de tablas para obtener los datos, lo más probable es que esto indique un error de diseño.