Kā rādīt visus rādītājus MySQL vai shēmā

How Show All Indexes Mysql



MySQL datu bāzes indekss attiecas uz datu struktūras tipu, ko izmanto kā datu organizāciju datu bāzē un lai palīdzētu veicināt dažādu MySQL veikto darbību ātrumu.

Indeksi ir ļoti noderīgi. Bez tiem MySQL ir jāpārbauda visa tabula, lai atrastu attiecīgās rindas un kolonnas, kas lielās datu bāzēs var būt ļoti neefektīvas.







Šī apmācība koncentrēsies uz to, kā apskatīt indeksa informāciju, izmantojot MySQL klauzulu SHOW INDEXES.



Rādīt tabulu rādītājus

Lai tabulā parādītu indeksa informāciju, mēs izmantojam klauzulu RĀDĪT INDEKSUS, kam seko tabulas nosaukums, kurā mēs vēlamies iegūt indeksa informāciju.



Vispārējā sintakse tiek parādīta šādi:





RĀDĪT INDEKSUS tbl_name;

Piemēram, apsveriet vienu no tabulām Sakila paraugu datubāzē. Mēs varam iegūt indeksa informāciju, kā parādīts zemāk esošajā vaicājumā:

LIETOT sakila;

RĀDĪT INDEKSUS NO FILMAS;

Iepriekš minētais vaicājums parādīs indeksa informāciju no filmu tabulas Sakila datu bāzē. Rezultāts ir šāds:



Izpratne par indeksa informāciju

Komanda RĀDĪT INDEKSUS parāda norādīto tabulas informāciju par indeksiem.

Šeit ir sniegti šādi noteikumi un to attiecīgā informācija:

  1. Tabula: Šī ir pirmā kolonna no izvades. Tas parāda tabulas nosaukumu, kurā atrodas indekss.
  2. Nav unikāls: Otrajā slejā redzams, vai indeksā var būt dublikāts. Vērtība ir Būla, kur 1 norāda, ka indekss var saturēt dublikātus, un 0, ja citādi.
  3. Atslēgas nosaukums: Trešajā slejā ir norādīts indeksa nosaukums. Pēc vienošanās primārā atslēga ņem indeksa nosaukumu PRIMARY.
  4. Seq_in_index: Ceturtajā kolonnā tiek parādīts kolonnas kārtas numurs indeksā, sākot no vērtības 1.
  5. Kolonnas_nosaukums: Piektā kolonna ir vienkārši kolonnas nosaukums.
  6. Salikšana: Sestā kolonna ir sadaļa, kas parāda, kā kolonna tiek sakārtota rādītājā. Ir trīs šķirošanas vērtības: A ir augošā secība, B norāda dilstošo secību un NULL ir nešķirota.
  7. Kardinālitāte: Septītā sleja parāda datu vērtības unikalitāti. Indeksos tas parāda aptuveno unikālo vērtību skaitu konkrētajā indeksā.
  8. Apakšdaļa: Astotajā slejā tiek parādīts indeksa prefikss ar NULL, norādot, ka visa kolonna ir indeksēta.
  9. Iepakots: Devītā sleja parāda, kā ir iepakotas indeksa atslēgas, un NULL norāda, ka atslēgas nav iepakotas.
  10. Null: Desmitajā kolonnā ir norādīts, vai kolonnā var būt NULL vērtības. Jā, ja kolonnā var būt nulles vērtības, un tukša, ja tā nav.
  11. Indeksa_tips: Vienpadsmitajā kolonnā ir parādīta tāda indeksa metode kā BTREE, HASH, RTREE un FULLTEXT.
  12. Komentārs: Divpadsmitajā slejā tiek parādīta informācija par indeksu, kas nav aprakstīta tās slejā.
  13. Index_comment: Trīspadsmitajā kolonnā tiek parādīta papildu informācija par indeksu, kas tika izveidots, izmantojot atribūtu COMMENT.
  14. Redzams: Četrpadsmitā kolonna ir vaicājumu optimizētājam redzamais rādītājs ar vērtībām Jā un Nē.
  15. Izteiksme: Piecpadsmitā kolonna tiek parādīta, ja indekss izmanto izteiksmi, nevis kolonnas vai kolonnas prefiksa vērtību.

PADOMS: Informācija par indeksiem no SHOW INDEXES vaicājuma ir līdzīga SQLStatistics informācijai.

Rādīt shēmu indeksus

Varat arī iegūt informāciju par shēmu. Šī rezultāta sasniegšanas vispārējā sintakse ir šāda:

SELECT tabulas_nosaukums, indeksa_nosaukums no INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = shēmas_nosaukums;

Apsveriet tālāk esošo vaicājumu, kurā tiek parādīta informācija par Sakila shēmu:

SELECT tabulas_nosaukums, indeksa_nosaukums FROM information_schema.statistics WHERE table_schema ='sakila';

Tiks parādīta informācija par indeksiem Sakila shēmā, kā parādīts zemāk redzamajā izvadā:

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

|TABLE_NAME|INDEX_NAME|

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

|aktieris|PRIMĀRS|

|aktieris|idx_aktora_lapa_vards|

|adrese|PRIMĀRS|

|adrese|idx_fk_city_id|

|adrese|idx_lokācija|

|kategorija|PRIMĀRS|

|pilsēta|PRIMĀRS|

|pilsēta|idx_fk_country_id|

|valsti|PRIMĀRS|

|klients|PRIMĀRS|

|klients|idx_fk_store_id|

|klients|idx_fk_address_id|

|klients|idx_last_name|

|filma|PRIMĀRS|

|filma|idx_title|

|filma|idx_fk_language_id|

|filma|idx_fk_original_language_id|

|filmas_aktieris|PRIMĀRS|

|filmas_aktieris|PRIMĀRS|

|filmas_aktieris|idx_fk_film_id|

|filmas_kategorija|PRIMĀRS|

|filmas_kategorija|PRIMĀRS|

|filmas_kategorija|fk_film_category_category|

|filmas_teksts|PRIMĀRS|

|filmas_teksts|idx_title_description|

|filmas_teksts|idx_title_description|

|inventārs|PRIMĀRS|

|inventārs|idx_fk_film_id|

|inventārs|idx_store_id_film_id|

|inventārs|idx_store_id_film_id|

|----------------------------- IZVEJA APTURĒTA ------------------- -------

Varat arī iegūt informāciju no visām servera shēmām, izmantojot tālāk norādīto vaicājumu:

SELECT tabulas_nosaukums, indeksa_nosaukums FROM information_schema.statistics;

PIEZĪME : Iepriekš minētais vaicājums izmet daudz informācijas. Reti jums būs jāiegūst indeksi no visām shēmām. Tomēr parauga izlaide ir zemāk:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|PRIMĀRS|

|innodb_table_stats|PRIMĀRS|

|innodb_index_stats|PRIMĀRS|

|innodb_index_stats|PRIMĀRS|

|innodb_index_stats|PRIMĀRS|

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

Secinājums

Šajā apmācībā mēs apspriedām, kā izmantot vaicājumu MySQL SHOW INDEXES, lai iegūtu informāciju par tabulas indeksiem. Mēs arī apskatījām informācijas_schema izmantošanu, lai iegūtu informāciju par indeksiem no vienas vai visām shēmām MySQL serverī.