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

Índice en SQLite

Los índices son tablas de búsqueda especiales que los motores de búsqueda de bases de datos pueden usar para acelerar la recuperación de datos. En resumen, aníndiceSon punteros que apuntan a los datos de la tabla. Los índices en la base de datos son muy similares a los índices al final de un libro.

Por ejemplo, si se desea referirse a todas las páginas de un libro que discuten un tema determinado, primero se debe referirse al índice, que enumera todos los temas en orden alfabético, y luego se deben referir a una o más páginas específicas.

Los índices ayudan a acelerar la velocidad de las consultas SELECT y las subconsultas WHERE, pero pueden ralentizar la velocidad de entrada de datos mediante las sentencias UPDATE e INSERT. Se pueden crear o eliminar índices sin afectar los datos.

La creación de índices implica la sentencia CREATE INDEX, que le permite nombrar el índice, especificar la tabla y las columnas o combinaciones de columnas que se van a indexar, e indicar si el índice es ascendente o descendente.

Los índices también pueden ser únicos, al igual que las restricciones UNIQUE, porque los índices pueden evitar la existencia de entradas repetidas en las columnas o combinaciones de columnas que tienen índices.

Comando CREATE INDEX

A continuación, se muestra la sintaxis básicaCREATE INDEX.

CREATE INDEX index_name ON table_name;

Índice de columna única

El índice de columna única es un índice basado solo en una columna de la tabla. La sintaxis básica es la siguiente-

CREATE INDEX index_name ON table_name (column_name);

Índice único

El índice único no solo se utiliza para mejorar el rendimiento, sino también para la integridad de los datos. El índice único no permite insertar valores repetidos en la tabla. La sintaxis básica es la siguiente-

CREATE UNIQUE INDEX index_name ON table_name (column_name);

Índice compuesto

El índice compuesto es un índice en dos o más columnas de la tabla. La sintaxis básica es la siguiente-

CREATE INDEX index_name ON table_name (column)1, columna2);

Ya sea que se cree un índice de columna única o un índice compuesto, considere que la columna (s) que es muy utilizada como condición de filtro en la cláusula WHERE de la consulta.

Si solo se utiliza una columna, debe seleccionar un índice de columna única. Si las cláusulas WHERE a menudo utilizan dos o más columnas como filtros, el índice compuesto será la mejor opción.

Índice implícito

Los índices implícitos son índices creados automáticamente por el servidor de bases de datos al crear el objeto. Crean índices automáticamente para restricciones de clave principal y únicas.

Ejemplo

A continuación, se muestra un ejemplo, donde crearemos un índice para la columna salario en la tabla COMPANY-

sqlite> CREATE INDEX salary_index ON COMPANY (salary);

Ahora, use lo siguiente.indicesEl comando lista todos los índices disponibles en la tabla COMPANY:

sqlite> .indices COMPANY

Esto producirá el siguiente resultado, dondesqlite_autoindex_COMPANY_1es un índice implícito,ElEl índice de tipo es el que se crea en el momento de la creación de la tabla misma.

salary_indexsqlite_autoindex_COMPANY_1

Puede listar todos los rangos de bases de datos de índices, como se muestra a continuación:

sqlite> SELECT * FROM sqlite_master WHERE type = 'index';

Comando DROP INDEX

Se puede usar SQLite DROPElimine el índice de comando. Tenga cuidado al eliminar el índice, ya que puede ralentizar o acelerar el rendimiento.

A continuación se muestra la sintaxis básica:-

DROP INDEX index_name;

Puede usar la siguiente sentencia para eliminar el índice creado anteriormente.

sqlite> DROP INDEX salary_index;

¿Cuándo se debe evitar el índice?

A pesar de que los índices están diseñados para mejorar el rendimiento de la base de datos, a veces es mejor evitar su uso. Las siguientes directrices indican cuándo se debe considerar de nuevo el uso de índices.

No se debe usar el índice para-

  • Tablas pequeñas.

  • Tablas que tienen operaciones de actualización o inserción en lote frecuentes y en grandes cantidades.

  • Columnas que contienen una gran cantidad de valores NULL.

  • Columnas operadas con frecuencia.