Cómo mostrar todos los índices en mysql o esquema

Cómo mostrar todos los índices en mysql o esquema
El índice de base de datos MySQL se refiere a un tipo de estructura de datos utilizada como organización de datos en una base de datos y para ayudar a avanzar 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 utilizando la cláusula Show Indexes en MySQL.

Mostrar índices de tabla

Para mostrar la información del índice en una tabla, utilizamos la cláusula Show Indexes seguida del nombre de la tabla, deseamos obtener la información del índice.

La sintaxis general se muestra como:

Mostrar índices tbl_name;

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

Usa sakila;
Mostrar índices de la película;

La consulta anterior mostrará información de índice de la tabla de película 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.

Estos son los siguientes términos y su información respectiva proporcionada:

  1. Mesa: Esta es la primera columna de la salida. Muestra el nombre de la tabla donde reside el índice.
  2. No unique: La segunda columna muestra si el índice puede contener un duplicado. El valor es un booleano, con 1 que indica que el índice puede contener duplicados y 0 si es lo contrario.
  3. Nombre clave: La tercera columna muestra el nombre del índice. Por convención, la clave principal toma el nombre del índice de la primaria.
  4. SEQ_IN_INDEX: La cuarta columna muestra el número de secuencia de columna en el índice a partir del valor de 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 clasifica la columna en el índice. Hay tres valores de clasificación, con un orden ascendente, B que indica el orden descendente y nulo como no presentado.
  7. Cardinalidad: La séptima columna muestra la singularidad del valor de los datos. En los índices, muestra el número estimado de valores únicos en el índice específico.
  8. Sub_part: 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 empacan las teclas de índice, con nulo que indica que las teclas no están empacadas.
  10. Nulo: La décima columna especifica si la columna puede contener valores nulos. Sí, si la columna puede contener valores nulos y vacío si no.
  11. Index_type: 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 utilizando el atributo de comentarios cuando se crea.
  14. Visible: La decimocuarta columna es el índice visible para el optimizador de consulta, con valores de sí y no.
  15. Expresión: La columna del Decimoquinto se muestra si el índice usa una expresión y no un valor de prefijo de columna o columna.

PISTA: La información sobre los índices de la consulta de los índices del show 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:

Seleccione Table_Name, index_name de información_schema.Estadísticas donde table_schema = "schema_name";

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

Seleccione Table_Name, index_name de información_schema.estadísticas donde table_schema = "sakila";

Esto mostrará información sobre los índices en el esquema de Sakila como se muestra en la siguiente salida:

+---------------+-----------------------------+
| Table_name | 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 |
| Film_actor | Primario |
| Film_actor | Primario |
| Film_actor | IDX_FK_FILM_ID |
| Film_Category | Primario |
| Film_Category | Primario |
| Film_Category | 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 en el servidor utilizando la consulta que se muestra a continuación:

Seleccione Table_Name, index_name de información_schema.Estadísticas;

NOTA: La consulta anterior arroja mucha información. Raramente necesitará obtener índices de todos los esquemas. Sin embargo, una salida de muestra está a continuación:

+--------------------+------------+
| Table_name | 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 de índices MySQL Show para obtener información sobre los índices en una tabla. También analizamos el uso del Information_Schema para obtener información sobre los índices de uno o todos los esquemas en un servidor MySQL.