Com es mostren tots els índexs a MySQL o esquema

How Show All Indexes Mysql



L’índex de base de dades MySQL fa referència a un tipus d’estructura de dades que s’utilitza com a organització de dades en una base de dades i per ajudar a avançar en la velocitat de les diferents operacions realitzades a MySQL.

Els índexs són molt útils. Sense ells, MySQL ha d’escanejar tota la taula per trobar les files i columnes pertinents, que poden ser molt poc eficients en bases de dades grans.







Aquest tutorial se centrarà en com veure informació d'índex mitjançant la clàusula SHOW INDEXES a MySQL.



Mostra els índexs de taula

Per mostrar informació d'índex en una taula, fem servir la clàusula SHOW INDEXES seguida del nom de la taula que volem obtenir la informació d'índex.



La sintaxi general es mostra com:





MOSTRA ÍNDEXs nom_tbl;

Per exemple, considereu una de les taules de la base de dades de mostra Sakila. Podem obtenir la informació de l’índex tal com es mostra a la consulta següent:

USAR sakila;

MOSTRA ELS ÍNDEXS DE la pel·lícula;

La consulta anterior mostrarà informació d'índex de la taula de pel·lícules a la base de dades Sakila. La sortida és:



Comprensió de la informació de l’índex

L'ordre SHOW INDEXES mostra la informació rellevant sobre els índexs de la taula especificada.

A continuació, es detallen els termes i la informació corresponent:

  1. Taula: Aquesta és la primera columna de la sortida. Mostra el nom de la taula on resideix l’índex.
  2. No únic: La segona columna mostra si l’índex pot contenir un duplicat. El valor és booleà, amb 1 que indica que l’índex pot contenir duplicats i 0 en cas contrari.
  3. Nom_clau: La tercera columna mostra el nom de l'índex. Per convenció, la clau principal pren el nom d'índex de PRIMÀRIA.
  4. Seq_in_index: La quarta columna mostra el número de seqüència de columna a l'índex a partir del valor d'1.
  5. Nom de columna: La cinquena columna és simplement el nom de la columna.
  6. Interacció: La sisena columna és una secció que mostra com s'ordena la columna a l'índex. Hi ha tres valors d’ordenació, sent A l’ordre ascendent, B que indica l’ordre descendent i NULL com a no ordenat.
  7. Cardinalitat: La setena columna mostra la singularitat del valor de les dades. Als índexs, mostra el nombre estimat de valors únics de l’índex específic.
  8. Sub_part: La vuitena columna mostra el prefix de l’índex amb NULL, que indica que tota la columna està indexada.
  9. Embalat: La novena columna mostra com s’empaqueten les claus d’índex, amb NULL que indica que les claus no estan empaquetades.
  10. Nul: La desena columna especifica si la columna pot contenir valors NULS. Sí, si la columna pot contenir valors nuls i, si no, és buida.
  11. Tipus_índex: L'onzena columna mostra el mètode d'índex com BTREE, HASH, RTREE i FULLTEXT.
  12. Comentari: La dotzena columna mostra la informació sobre un índex que no es descriu a la seva columna.
  13. Comentari_índex: La tretzena columna mostra informació addicional sobre l'índex especificat mitjançant l'atribut COMMENT quan es crea.
  14. visible: La catorzena columna és l’índex visible per l’optimitzador de consultes, amb valors Sí i No.
  15. Expressió: La quinzena columna es mostra si l'índex utilitza una expressió i no un valor de columna o prefix de columna.

PISTA: La informació sobre els índexs de la consulta SHOW INDEXES és similar a la de SQLStatistics.

Mostra els índexs d’esquema

També podeu obtenir informació d’índex sobre un esquema. La sintaxi general per aconseguir aquest resultat és la següent:

SELECCIONA nom_tabla, nom_índex DE INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = nom_esquema;

Penseu en la consulta següent que mostra informació sobre l’esquema de Sakila:

SELECCIONA nom_tabla, nom_índex FROM informació_schema.statistics WHERE table_schema ='sakila';

Es mostrarà informació sobre els índexs de l’esquema de Sakila, tal com es mostra a la sortida següent:

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

|TABLE_NAME|INDEX_NAME|

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

|actor|PRIMÀRIA|

|actor|idx_actor_last_name|

|adreça|PRIMÀRIA|

|adreça|idx_fk_city_id|

|adreça|ubicació_idx|

|categoria|PRIMÀRIA|

|ciutat|PRIMÀRIA|

|ciutat|idx_fk_country_id|

|país|PRIMÀRIA|

|client|PRIMÀRIA|

|client|idx_fk_store_id|

|client|idx_fk_address_id|

|client|idx_last_name|

|pel·lícula|PRIMÀRIA|

|pel·lícula|idx_title|

|pel·lícula|idx_fk_language_id|

|pel·lícula|idx_fk_original_language_id|

|actor_film|PRIMÀRIA|

|actor_film|PRIMÀRIA|

|actor_film|idx_fk_film_id|

|categoria_film|PRIMÀRIA|

|categoria_film|PRIMÀRIA|

|categoria_film|fk_film_category_category|

|text_film|PRIMÀRIA|

|text_film|idx_title_description|

|text_film|idx_title_description|

|inventari|PRIMÀRIA|

|inventari|idx_fk_film_id|

|inventari|idx_store_id_film_id|

|inventari|idx_store_id_film_id|

|----------------------------- SORTIDA TRONCADA ------------------- -------

També podeu obtenir informació de tots els esquemes del servidor mitjançant la consulta que es mostra a continuació:

SELECT nom_tabla, nom_índex FROM informació_schema.statistics;

NOTA : La consulta anterior aboca molta informació. Poques vegades caldrà obtenir índexs de tots els esquemes. Tot i això, es mostra una sortida de mostra a continuació:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|PRIMÀRIA|

|innodb_table_stats|PRIMÀRIA|

|innodb_index_stats|PRIMÀRIA|

|innodb_index_stats|PRIMÀRIA|

|innodb_index_stats|PRIMÀRIA|

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

Conclusió

En aquest tutorial, hem parlat de com utilitzar la consulta MySQL SHOW INDEXES per obtenir informació sobre els índexs d'una taula. També hem analitzat l'ús de information_schema per obtenir informació sobre els índexs d'un o de tots els esquemes d'un servidor MySQL.