Så här visar du alla index i MySQL eller schema

How Show All Indexes Mysql



MySQL -databasindex hänvisar till en typ av datastruktur som används som dataorganisation i en databas och för att hjälpa till att öka hastigheten på olika operationer som utförs i MySQL.

Index är till stor hjälp. Utan dem måste MySQL skanna hela tabellen för att hitta relevanta rader och kolumner, vilket kan vara mycket ineffektivt i stora databaser.







Denna handledning kommer att fokusera på hur du visar indexinformation med hjälp av SHOW INDEXES -klausulen i MySQL.



Visa tabellindex

För att visa indexinformation på en tabell använder vi SHOW INDEXES -satsen följt av namnet på tabellen som vi vill få indexinformationen.



Den allmänna syntaxen visas som:





VISA INDEXER tbl_name;

Tänk till exempel på en av tabellerna i Sakilas exempeldatabas. Vi kan få indexinformationen som visas i frågan nedan:

ANVÄND sakila;

VISA INDEXER FRÅN film;

Ovanstående fråga visar indexinformation från filmtabellen i Sakila -databasen. Utgången är:



Förstå indexinformation

Kommandot VISA INDEXER visar relevant information om indexen i den angivna tabellen.

Här följer följande villkor och deras respektive information:

  1. Tabell: Detta är den första kolumnen från utdata. Det visar namnet på tabellen där indexet finns.
  2. Ej unikt: Den andra kolumnen visar om indexet kan innehålla en kopia. Värdet är en booleskt, med 1 som anger att indexet kan innehålla dubbletter och 0 om annat.
  3. Nyckelnamn: Den tredje kolumnen visar indexets namn. Enligt konvention tar huvudnyckeln indexnamnet PRIMARY.
  4. Seq_in_index: Den fjärde kolumnen visar kolumnsekvensnumret i indexet från värdet 1.
  5. Kolumnnamn: Den femte kolumnen är helt enkelt kolumnnamnet.
  6. Sortering: Den sjätte kolumnen är ett avsnitt som visar hur kolumnen sorteras i indexet. Det finns tre sorteringsvärden, med A som den stigande ordningen, B indikerar den fallande ordningen och NULL som icke-sorterad.
  7. Kardinalitet: Den sjunde kolumnen visar datavärdets unika karaktär. I index visar det det uppskattade antalet unika värden i det specifika indexet.
  8. Del_del: Den åttonde kolumnen visar indexprefixet med NULL, vilket indikerar att hela kolumnen är indexerad.
  9. Packade: Den nionde kolumnen visar hur indexnycklarna är packade, med NULL som anger att nycklarna inte är packade.
  10. Null: Den tionde kolumnen anger om kolumnen kan innehålla NULL -värden. Ja, om kolumnen kan innehålla nullvärden och tom om inte.
  11. Indextyp: Den elfte kolumnen visar indexmetoden som BTREE, HASH, RTREE och FULLTEXT.
  12. Kommentar: Den tolfte kolumnen visar information om ett index som inte beskrivs i dess kolumn.
  13. Index_comment: Den trettonde kolumnen visar ytterligare information om index som anges med attributet COMMENT när det skapas.
  14. Synlig: Den fjortonde kolumnen är indexet synligt för frågeoptimeraren, med värdena Ja och Nej.
  15. Uttryck: Den femtonde kolumnen visas om indexet använder ett uttryck och inte ett kolumn- eller kolumnprefixvärde.

ANTYDAN: Informationen om indexen från SHOW INDEXES -frågan liknar den för SQLStatistics.

Visa schemaindex

Du kan också få indexinformation om ett schema. Den allmänna syntaxen för att uppnå detta resultat är enligt nedan:

VÄLJ tabellnamn, indexnamn FRÅN INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = schema_name;

Tänk på frågan nedan som visar information om Sakila -schemat:

VÄLJ tabellnamn, indexnamn FRÅN information_schema.statistics WHERE table_schema ='sakila';

Detta kommer att visa information om indexen i Sakila -schemat som visas i utdata nedan:

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

|TABLE_NAME|INDEX_NAME|

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

|skådespelare|PRIMÄR|

|skådespelare|idx_actor_last_name|

|adress|PRIMÄR|

|adress|idx_fk_city_id|

|adress|idx_location|

|kategori|PRIMÄR|

|stad|PRIMÄR|

|stad|idx_fk_country_id|

|Land|PRIMÄR|

|kund|PRIMÄR|

|kund|idx_fk_store_id|

|kund|idx_fk_address_id|

|kund|idx_last_name|

|filma|PRIMÄR|

|filma|idx_title|

|filma|idx_fk_language_id|

|filma|idx_fk_original_language_id|

|filmaktör|PRIMÄR|

|filmaktör|PRIMÄR|

|filmaktör|idx_fk_film_id|

|filmkategori|PRIMÄR|

|filmkategori|PRIMÄR|

|filmkategori|fk_film_category_category|

|film_text|PRIMÄR|

|film_text|idx_title_description|

|film_text|idx_title_description|

|lager|PRIMÄR|

|lager|idx_fk_film_id|

|lager|idx_store_id_film_id|

|lager|idx_store_id_film_id|

|----------------------------- OUTPUT TRUNCATED ------------------- -------

Du kan också få information från alla scheman på servern med hjälp av frågan nedan:

VÄLJ tabellnamn, indexnamn FRÅN informationsschema.statistik;

NOTERA : Ovanstående fråga dumpar mycket information. Sällan kommer du att behöva få index från alla scheman. Ett urval är dock nedan:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|PRIMÄR|

|innodb_table_stats|PRIMÄR|

|innodb_index_stats|PRIMÄR|

|innodb_index_stats|PRIMÄR|

|innodb_index_stats|PRIMÄR|

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

Slutsats

I den här självstudien diskuterade vi hur man använder MySQL SHOW INDEXES -frågan för att få information om indexen i en tabell. Vi tittade också på att använda information_schema för att få information om index från ett eller alla scheman i en MySQL -server.