Cara Menunjukkan Semua Indeks di MySQL atau Skema

How Show All Indexes Mysql



Indeks pangkalan data MySQL merujuk pada jenis struktur data yang digunakan sebagai organisasi data dalam pangkalan data dan untuk membantu memajukan kecepatan berbagai operasi yang dilakukan di MySQL.

Indeks sangat membantu. Tanpa mereka, MySQL harus mengimbas seluruh jadual untuk mencari baris dan lajur yang berkaitan, yang sangat tidak efisien dalam pangkalan data yang besar.







Tutorial ini akan memfokuskan cara melihat maklumat indeks dengan menggunakan klausa SHOW INDEXES di MySQL.



Tunjukkan indeks Jadual

Untuk menunjukkan maklumat indeks di atas meja, kami menggunakan klausa TUNJUK INDEKS diikuti dengan nama jadual yang ingin kami dapatkan maklumat indeks.



Sintaks umum ditunjukkan sebagai:





TAMPILKAN INDEKS tbl_name;

Sebagai contoh, pertimbangkan salah satu jadual dalam pangkalan data sampel Sakila. Kita boleh mendapatkan maklumat indeks seperti yang ditunjukkan dalam pertanyaan di bawah:

GUNAKAN sakila;

TAMPILKAN INDEKS DARI filem;

Pertanyaan di atas akan memaparkan maklumat indeks dari jadual filem dalam pangkalan data Sakila. Keluarannya adalah:



Memahami Maklumat Indeks

Perintah SHOW INDEXES memaparkan maklumat yang relevan mengenai indeks dalam jadual yang ditentukan.

Berikut adalah syarat-syarat berikut dan maklumat masing-masing yang diberikan:

  1. Jadual: Ini adalah lajur pertama dari output. Ia menunjukkan nama jadual di mana indeks berada.
  2. Tidak unik: Lajur kedua menunjukkan jika indeks boleh mengandungi pendua. Nilainya adalah Boolean, dengan 1 menunjukkan indeks boleh mengandungi pendua dan 0 jika sebaliknya.
  3. Nama_Kunci: Lajur ketiga menunjukkan nama indeks. Secara konvensional, kunci utama mengambil nama indeks PRIMARY.
  4. Seq_in_index: Lajur keempat memaparkan nombor turutan lajur dalam indeks bermula dari nilai 1.
  5. Lajur_nama: Lajur kelima hanyalah nama lajur.
  6. Penggabungan: Lajur keenam adalah bahagian yang menunjukkan bagaimana lajur disusun dalam indeks. Terdapat tiga nilai penyortiran, dengan A menjadi urutan Menaik, B menunjukkan urutan Menurun, dan NULL sebagai tidak diurutkan.
  7. Kardinaliti: Lajur ketujuh menunjukkan keunikan nilai data. Dalam indeks, ia menunjukkan anggaran jumlah nilai unik dalam indeks tertentu.
  8. Sub-bahagian: Lajur kelapan memaparkan awalan indeks dengan NULL, menunjukkan keseluruhan lajur diindeks.
  9. Dibungkus: Lajur kesembilan menunjukkan bagaimana kunci indeks dibungkus, dengan NULL menunjukkan kunci tidak dibungkus.
  10. Batal: Lajur kesepuluh menentukan jika lajur boleh mengandungi nilai NULL. Ya, jika lajur boleh mengandungi nilai nol, dan kosongkan jika tidak.
  11. Jenis_indeks: Lajur kesebelas menunjukkan kaedah indeks seperti BTREE, HASH, RTREE, dan FULLTEXT.
  12. Komen: Lajur kedua belas menunjukkan maklumat mengenai indeks yang tidak dijelaskan dalam lajurnya.
  13. Indeks_komen: Lajur ketiga belas menunjukkan maklumat tambahan mengenai indeks yang ditentukan menggunakan atribut KOMEN ketika dibuat.
  14. Kelihatan: Lajur keempat belas adalah indeks yang dapat dilihat oleh pengoptimum pertanyaan, dengan nilai Ya dan Tidak.
  15. Ungkapan: Lajur kelima belas memaparkan jika indeks menggunakan ungkapan dan bukan nilai awalan lajur atau lajur.

Petunjuk: Maklumat mengenai indeks dari pertanyaan SHOW INDEXES adalah serupa dengan SQLStatistics.

Tunjukkan Indeks Skema

Anda juga boleh mendapatkan maklumat indeks mengenai skema. Sintaks umum untuk mencapai hasil ini adalah seperti di bawah:

SELECT table_name, index_name DARI INFORMATION_SCHEMA.STATISTICS MANA TABLE_SCHEMA = schema_name;

Pertimbangkan pertanyaan di bawah yang menunjukkan maklumat mengenai skema Sakila:

SELECT table_name, index_name FROM information_schema.statistics MANA table_schema ='sakila';

Ini akan memaparkan maklumat mengenai indeks dalam skema Sakila seperti yang ditunjukkan dalam output di bawah:

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

|TABLE_NAME|INDEX_NAME|

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

|pelakon|PERDANA|

|pelakon|idx_actor_last_name|

|alamat|PERDANA|

|alamat|idx_fk_city_id|

|alamat|idx_lokasi|

|kategori|PERDANA|

|bandar|PERDANA|

|bandar|idx_fk_country_id|

|negara|PERDANA|

|pelanggan|PERDANA|

|pelanggan|idx_fk_store_id|

|pelanggan|idx_fk_address_id|

|pelanggan|idx_last_name|

|filem|PERDANA|

|filem|idx_title|

|filem|idx_fk_language_id|

|filem|idx_fk_original_language_id|

|filem_aktor|PERDANA|

|filem_aktor|PERDANA|

|filem_aktor|idx_fk_film_id|

|filem_kategori|PERDANA|

|filem_kategori|PERDANA|

|filem_kategori|fk_film_category_category|

|teks_teks|PERDANA|

|teks_teks|idx_title_deskripsi|

|teks_teks|idx_title_deskripsi|

|persediaan|PERDANA|

|persediaan|idx_fk_film_id|

|persediaan|idx_store_id_film_id|

|persediaan|idx_store_id_film_id|

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

Anda juga boleh mendapatkan maklumat dari semua skema di pelayan menggunakan pertanyaan yang ditunjukkan di bawah:

SELECT table_name, index_name FROM information_schema.statistics;

CATATAN : Pertanyaan di atas membuang banyak maklumat. Jarang anda perlu mendapatkan indeks dari semua skema. Walau bagaimanapun, output sampel adalah di bawah:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|PERDANA|

|innodb_table_stats|PERDANA|

|innodb_index_stats|PERDANA|

|innodb_index_stats|PERDANA|

|innodb_index_stats|PERDANA|

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

Kesimpulannya

Dalam tutorial ini, kami membincangkan cara menggunakan pertanyaan MySQL SHOW INDEXES untuk mendapatkan maklumat mengenai indeks dalam jadual. Kami juga melihat menggunakan information_schema untuk mendapatkan maklumat mengenai indeks dari satu atau semua skema dalam pelayan MySQL.