Cómo mostrar todos los índices en MySQL o Schema

How Show All Indexes Mysql



El índice de base de datos MySQL se refiere a un tipo de estructura de datos que se utiliza como organización de datos en una base de datos y para ayudar a avanzar en la velocidad de varias operaciones realizadas en MySQL.

Los índices son muy útiles. Sin ellos, MySQL tiene que escanear toda la tabla para encontrar las filas y columnas relevantes, lo que puede ser muy ineficiente en grandes bases de datos.







Este tutorial se centrará en cómo ver la información del índice mediante el uso de la cláusula SHOW INDEXES en MySQL.



Mostrar índices de tabla

Para mostrar la información del índice en una tabla, usamos la cláusula SHOW INDEXES seguida del nombre de la tabla en la que deseamos obtener la información del índice.



La sintaxis general se muestra como:





MOSTRAR ÍNDICES tbl_name;

Por ejemplo, considere una de las tablas de la base de datos de muestra de Sakila. Podemos obtener la información del índice como se muestra en la siguiente consulta:

USE sakila;

MOSTRAR ÍNDICES DE LA PELÍCULA;

La consulta anterior mostrará información de índice de la tabla de películas en la base de datos de Sakila. La salida es:



Comprensión de la información del índice

El comando SHOW INDEXES muestra la información relevante sobre los índices en la tabla especificada.

Aquí están los siguientes términos y su respectiva información proporcionada:

  1. Mesa: Esta es la primera columna de la salida. Muestra el nombre de la tabla donde reside el índice.
  2. No único: La segunda columna muestra si el índice puede contener un duplicado. El valor es un booleano, donde 1 indica que el índice puede contener duplicados y 0 en caso contrario.
  3. Nombre clave: La tercera columna muestra el nombre del índice. Por convención, la clave principal toma el nombre de índice PRIMARY.
  4. Seq_in_index: La cuarta columna muestra el número de secuencia de la columna en el índice a partir del valor 1.
  5. Column_name: La quinta columna es simplemente el nombre de la columna.
  6. Colación: La sexta columna es una sección que muestra cómo se ordena la columna en el índice. Hay tres valores de clasificación, siendo A el orden ascendente, B indicando el orden descendente y NULL como no clasificado.
  7. Cardinalidad: La séptima columna muestra la singularidad del valor de los datos. En índices, muestra el número estimado de valores únicos en el índice específico.
  8. Sub_parte: La octava columna muestra el prefijo de índice con NULL, lo que indica que toda la columna está indexada.
  9. Lleno: La novena columna muestra cómo se empaquetan las claves de índice, donde NULL indica que las claves no están empaquetadas.
  10. Nulo: La décima columna especifica si la columna puede contener valores NULL. Sí, si la columna puede contener valores nulos y, si no, vacía.
  11. Tipo_índice: La undécima columna muestra el método de índice como BTREE, HASH, RTREE y FULLTEXT.
  12. Comentario: La duodécima columna muestra la información sobre un índice no descrito en su columna.
  13. Index_comment: La decimotercera columna muestra información adicional sobre el índice especificado mediante el atributo COMMENT cuando se crea.
  14. Visible: La decimocuarta columna es el índice visible para el optimizador de consultas, con valores de Sí y No.
  15. Expresión: La decimoquinta columna muestra si el índice usa una expresión y no un valor de columna o prefijo de columna.

INSINUACIÓN: La información sobre los índices de la consulta SHOW INDEXES es similar a la de SQLStatistics.

Mostrar índices de esquema

También puede obtener información de índice sobre un esquema. La sintaxis general para lograr este resultado es la siguiente:

SELECT nombre_tabla, nombre_índice FROM INFORMACIÓN_SCHEMA.STATISTICS DONDE TABLE_SCHEMA = nombre_esquema;

Considere la consulta a continuación que muestra información sobre el esquema de Sakila:

SELECT table_name, index_name FROM information_schema.statistics WHERE table_schema ='sakila';

Esto mostrará información sobre los índices en el esquema de Sakila como se muestra en el resultado a continuación:

+---------------+-----------------------------+

|NOMBRE DE LA TABLA|INDEX_NAME|

+---------------+-----------------------------+

|actor|PRIMARIO|

|actor|idx_actor_last_name|

|Dirección|PRIMARIO|

|Dirección|idx_fk_city_id|

|Dirección|idx_location|

|categoría|PRIMARIO|

|ciudad|PRIMARIO|

|ciudad|idx_fk_country_id|

|país|PRIMARIO|

|cliente|PRIMARIO|

|cliente|idx_fk_store_id|

|cliente|idx_fk_address_id|

|cliente|idx_last_name|

|película|PRIMARIO|

|película|idx_title|

|película|idx_fk_language_id|

|película|idx_fk_original_language_id|

|Actor de películas|PRIMARIO|

|Actor de películas|PRIMARIO|

|Actor de películas|idx_fk_film_id|

|categoría_película|PRIMARIO|

|categoría_película|PRIMARIO|

|categoría_película|fk_film_category_category|

|film_text|PRIMARIO|

|film_text|idx_title_description|

|film_text|idx_title_description|

|inventario|PRIMARIO|

|inventario|idx_fk_film_id|

|inventario|idx_store_id_film_id|

|inventario|idx_store_id_film_id|

|----------------------------- SALIDA TRUNCADA ------------------- -------

También puede obtener información de todos los esquemas del servidor mediante la consulta que se muestra a continuación:

SELECT table_name, index_name FROM information_schema.statistics;

NOTA : La consulta anterior descarga mucha información. Rara vez necesitará obtener índices de todos los esquemas. Sin embargo, a continuación se muestra un resultado de muestra:

+--------------------+------------+

|NOMBRE DE LA TABLA|INDEX_NAME|

+--------------------+------------+

|innodb_table_stats|PRIMARIO|

|innodb_table_stats|PRIMARIO|

|innodb_index_stats|PRIMARIO|

|innodb_index_stats|PRIMARIO|

|innodb_index_stats|PRIMARIO|

+--------------------+------------+

Conclusión

En este tutorial, discutimos cómo usar la consulta SHOW INDEXES de MySQL para obtener información sobre los índices en una tabla. También analizamos el uso de information_schema para obtener información sobre los índices de uno o todos los esquemas en un servidor MySQL.