Este artículo describe principalmente cómo acelerar el análisis de índice MySQL y la optimización de sitios web dinámicos. Tutorial en línea de iSH China
1. ¿Qué es un índice?
El índiceen línea del tutorial de iSH China
se utiliza para encontrar rápidamente registros con valores específicos. Todos los índices de MySQL se guardan en forma de árboles B. Si no hay índice, al ejecutar una consulta, MySQL debe escanear todos los registros en toda la tabla comenzando desde el primer registro hasta encontrar un registro que cumpla con los requisitos. Cuanto mayor sea el número de registros en la tabla, mayor será el costo de esta operación. Si se ha creado un índice en la columna utilizada como condición de búsqueda, MySQL puede obtener rápidamente la ubicación del registro de destino sin escanear ningún registro. Si la tabla tiene 1000 registros, encontrar los registros a través del índice es al menos 100 veces más rápido que escanear los registros secuencialmente. Tutorial de chino iSH en línea
Supongamos que creamos una tabla llamada personas: Tutorial de chino iSH en línea
CREATE TABLE people ( peopleid SMALLINT NOT NULL, Tutorial de chino iSH en línea
nombre CHAR(50) NOT NULL Tutorial de chino iSH en línea
Luego, insertamos 1000 completamente al azar
);diferentes valores de nombre en la tabla de personas. Las columnas de nombres no tienen ningún orden explícito en el archivo de datos. Si creamos un índice en la columna de nombre, MySQL ordenará la columna de nombre en el índice. Para cada elemento del índice, MySQL guarda internamente un "puntero" a la ubicación real del registro en el archivo de datos. Entonces, si queremos encontrar el ID de persona del registro cuyo nombre es igual a "Mike" (el comando SQL es "SELECT peopleid FROM people WHERE name='Mike';"), MySQL puede encontrar el valor de "Mike" en el índice de nombre y luego vaya directamente a La fila correspondiente en el archivo de datos devuelve exactamente el ID de persona (999) de esa fila. Durante este proceso, MySQL solo necesita procesar una fila para devolver el resultado. Si no hay un índice en la columna "nombre", MySQL escaneará todos los registros en el archivo de datos, es decir, ¡1000 registros! Obviamente, cuanto menor sea la cantidad de registros que MySQL necesita procesar, más rápido podrá completar la tarea. Tutorial de chino iSH en línea
2. Tipos de índice Tutorial de chino iSH en línea
MySQL proporciona una variedad de tipos de índice para elegir: Tutorial de chino iSH en línea
Índice ordinario: Tutorial de chino iSH en línea
Este es el tipo de índice más básico y no tiene restricciones como la unicidad. . Los índices ordinarios se pueden crear de las siguientes maneras: el tutorial de chino en línea de iSH
crea un índice, por ejemplo, CREATE INDEX <nombre del índice> EN nombre de tabla (lista de columnas; el tutorial de chino en línea de iSH
modifica la tabla, por ejemplo, ALTER TABLE nombre de tabla ADD); INDEX [nombre del índice]] (lista de columnas) Tutorial chino en línea de iSH
Especifique el índice al crear una tabla, como CREATE TABLE tablename ([...], INDEX [nombre del índice] (lista de columnas));
Índice único
del tutorial de chino en línea
: iSH Tutorial de chino en líneaEste tipo de í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, deben ser único. Los índices únicos se pueden crear de las siguientes maneras: los tutoriales en chino de iSH en línea
crean índices, como CREATE UNIQUE INDEX <nombre del índice> ON tablename (lista de columnas) los tutoriales en chino en línea
modifican tablas, como ALTER TABLE tablename ADD UNIQUE [índice); nombre] (lista de columnas iSH Chinese Tutorial Online
Especifique el índice al crear una tabla, por ejemplo, CREATE TABLE tablename ([...], UNIQUE [nombre del índice] (lista de columnas));
Clave principal: Tutorial chino en línea de iSH
La clave principal es un índice único, pero debe especificarse como "CLAVE PRIMARIA". Si alguna vez ha utilizado columnas de tipo AUTO_INCREMENT, es posible que ya esté familiarizado con conceptos como claves primarias. La clave principal generalmente se especifica al crear la tabla, como "CREATE TABLE nombre de tabla ([...], PRIMARY KEY (lista de columnas));". Sin embargo, también podemos agregar claves primarias modificando la tabla, como "ALTER TABLE nombre de tabla ADD PRIMARY KEY (lista de columnas);". Cada tabla sólo puede tener una clave principal. Tutorial de chino iSH en línea
Índice de texto completo: Tutorial de chino iSH en línea
MySQL admite la indexación 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.