Come mostrare tutti gli indici in mysql o schema

Come mostrare tutti gli indici in mysql o schema
L'indice del database MySQL si riferisce a un tipo di struttura di dati utilizzata come organizzazione dei dati in un database e per aiutare a far avanzare la velocità di varie operazioni effettuate in MySQL.

Gli indici sono molto utili. Senza di loro, MySQL deve scansionare l'intera tabella per trovare le righe e le colonne pertinenti, che possono essere molto inefficienti nei database di grandi dimensioni.

Questo tutorial si concentrerà su come visualizzare le informazioni sull'indice utilizzando la clausola degli indici dello spettacolo in MySQL.

Mostra indici della tabella

Per mostrare le informazioni sull'indice su una tabella, utilizziamo la clausola degli indici dello spettacolo seguito dal nome della tabella che desideriamo ottenere le informazioni sull'indice.

La sintassi generale è mostrata come:

Mostra indici TBL_name;

Ad esempio, considera una delle tabelle nel database di esempio Sakila. Possiamo ottenere le informazioni sull'indice come mostrato nella query seguente:

Usa Sakila;
Mostra indici dal film;

La query sopra visualizzerà le informazioni sull'indice dalla tabella del film nel database Sakila. L'output è:

Comprensione delle informazioni sull'indice

Il comando Show Indexes visualizza le informazioni pertinenti sugli indici nella tabella specificata.

Ecco i seguenti termini e le rispettive informazioni fornite:

  1. Tavolo: Questa è la prima colonna dall'output. Mostra il nome della tabella in cui risiede l'indice.
  2. Non unico: La seconda colonna mostra se l'indice può contenere un duplicato. Il valore è un booleano, con 1 che indica l'indice può contenere duplicati e 0 se altrimenti.
  3. Key_name: La terza colonna mostra il nome dell'indice. Per convenzione, la chiave primaria prende il nome dell'indice del primario.
  4. Seq_in_index: La quarta colonna visualizza il numero di sequenza della colonna nell'indice a partire dal valore di 1.
  5. Column_name: La quinta colonna è semplicemente il nome della colonna.
  6. COLLAZIONE: La sesta colonna è una sezione che mostra come la colonna viene ordinata nell'indice. Esistono tre valori di smistamento, con un ordine ascendente, b che indica l'ordine decrescente e null come non ordinato.
  7. Cardinalità: La settima colonna mostra l'unicità del valore dei dati. Negli indici, mostra il numero stimato di valori univoci nell'indice specifico.
  8. Sub_part: L'ottava colonna visualizza il prefisso dell'indice con null, indicando l'intera colonna.
  9. Confezionato: La nona colonna mostra come sono imballati i tasti indicizzati, con null che indica i tasti non sono imballati.
  10. Nullo: La decima colonna specifica se la colonna può contenere valori null. Sì, se la colonna può contenere valori nulli e vuota in caso contrario.
  11. Index_type: L'undicesima colonna mostra il metodo indice come Btree, Hash, Rtree e FullText.
  12. Commento: La dodicesima colonna mostra le informazioni su un indice non descritto nella sua colonna.
  13. Index_Comment: La tredicesima colonna mostra ulteriori informazioni sull'indice specificato utilizzando l'attributo di commento quando creato.
  14. Visibile: La quattordicesima colonna è l'indice visibile all'ottimizzatore query, con valori di sì e no.
  15. Espressione: La quindicesima colonna viene visualizzata se l'indice utilizza un'espressione e non una colonna o un valore prefisso della colonna.

SUGGERIMENTO: Le informazioni sugli indici della query degli indici dello spettacolo sono simili a quelle di SQLSTATISTICE.

Mostra gli indici dello schema

Puoi anche ottenere informazioni sull'indice su uno schema. La sintassi generale per il raggiungimento di questo risultato è di seguito:

Seleziona Table_name, index_name da Information_Schema.Statistiche dove table_schema = “Schema_name”;

Considera la query di seguito che mostra informazioni sullo schema Sakila:

Seleziona Table_name, index_name da Information_Schema.statistiche dove table_schema = "sakila";

Ciò visualizzerà informazioni sugli indici nello schema Sakila come mostrato nell'output di seguito:

+---------------+-----------------------------+
| Table_name | Index_name |
+---------------+-----------------------------+
| Attore | Primario |
| Attore | idx_actor_last_name |
| Indirizzo | Primario |
| Indirizzo | idx_fk_city_id |
| Indirizzo | idx_location |
| categoria | Primario |
| città | Primario |
| città | idx_fk_country_id |
| Paese | Primario |
| Cliente | Primario |
| Cliente | idx_fk_store_id |
| Cliente | idx_fk_address_id |
| Cliente | idx_last_name |
| Film | Primario |
| Film | idx_title |
| Film | idx_fk_language_id |
| Film | 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 |
| --------------------------------- Output troncato--------------------------

Puoi anche ottenere informazioni da tutti gli schemi nel server utilizzando la query mostrata di seguito:

Seleziona Table_name, index_name da Information_Schema.statistiche;

NOTA: La query di cui sopra scarica molte informazioni. Raramente dovrai ottenere indici da tutti gli schemi. Tuttavia, un output del campione è sotto:

+--------------------+------------+
| Table_name | Index_name |
+--------------------+------------+
| innodb_table_stats | Primario |
| innodb_table_stats | Primario |
| INNODB_INDEX_STATS | Primario |
| INNODB_INDEX_STATS | Primario |
| INNODB_INDEX_STATS | Primario |
+--------------------+------------+

Conclusione

In questo tutorial, abbiamo discusso di come utilizzare la query degli indici di MySQL Show per ottenere informazioni sugli indici in una tabella. Abbiamo anche esaminato l'utilizzo di Information_Schema per ottenere informazioni sugli indici da uno o tutti gli schemi in un server MySQL.