วิธีแสดงดัชนีทั้งหมดใน MySQL หรือ Schema

How Show All Indexes Mysql



ดัชนีฐานข้อมูล MySQL หมายถึงประเภทของโครงสร้างข้อมูลที่ใช้เป็นองค์กรข้อมูลในฐานข้อมูล และช่วยให้ดำเนินการต่างๆ ใน ​​MySQL ได้รวดเร็วขึ้น

ดัชนีมีประโยชน์มาก หากไม่มีพวกเขา MySQL จะต้องสแกนตารางทั้งหมดเพื่อค้นหาแถวและคอลัมน์ที่เกี่ยวข้อง ซึ่งอาจไม่มีประสิทธิภาพมากในฐานข้อมูลขนาดใหญ่







บทช่วยสอนนี้จะเน้นที่วิธีดูข้อมูลดัชนีโดยใช้ส่วนคำสั่ง SHOW INDEXES ใน MySQL



แสดงดัชนีตาราง

ในการแสดงข้อมูลดัชนีบนตาราง เราใช้ส่วนคำสั่ง SHOW INDEXES ตามด้วยชื่อของตารางที่เราต้องการรับข้อมูลดัชนี



ไวยากรณ์ทั่วไปจะแสดงเป็น:





แสดงดัชนี tbl_name;

ตัวอย่างเช่น พิจารณาตารางใดตารางหนึ่งในฐานข้อมูลตัวอย่าง Sakila เราสามารถรับข้อมูลดัชนีตามที่แสดงในแบบสอบถามด้านล่าง:

ใช้ซากิลา;

แสดงดัชนีจากภาพยนตร์

แบบสอบถามด้านบนจะแสดงข้อมูลดัชนีจากตารางภาพยนตร์ในฐานข้อมูล Sakila ผลลัพธ์คือ:



ทำความเข้าใจข้อมูลดัชนี

คำสั่ง SHOW INDEXES แสดงข้อมูลที่เกี่ยวข้องเกี่ยวกับดัชนีในตารางที่ระบุ

ต่อไปนี้คือข้อกำหนดและข้อมูลที่เกี่ยวข้องที่ให้ไว้:

  1. ตาราง: นี่คือคอลัมน์แรกจากผลลัพธ์ มันแสดงชื่อของตารางที่มีดัชนีอยู่
  2. ไม่ซ้ำกัน: คอลัมน์ที่สองแสดงว่าดัชนีสามารถมีรายการซ้ำได้หรือไม่ ค่านี้เป็นบูลีน โดย 1 บ่งชี้ว่าดัชนีสามารถมีรายการซ้ำกันได้ และมีค่าเป็น 0 หากมี
  3. คีย์_ชื่อ: คอลัมน์ที่สามแสดงชื่อของดัชนี ตามธรรมเนียมแล้ว คีย์หลักจะใช้ชื่อดัชนีของ PRIMARY
  4. Seq_in_index: คอลัมน์ที่สี่แสดงหมายเลขลำดับคอลัมน์ในดัชนีเริ่มต้นจากค่า 1
  5. ชื่อคอลัมน์: คอลัมน์ที่ห้าเป็นเพียงชื่อคอลัมน์
  6. การเปรียบเทียบ: คอลัมน์ที่หกเป็นส่วนที่แสดงวิธีการจัดเรียงคอลัมน์ในดัชนี มีค่าการเรียงลำดับสามค่า โดยที่ A เป็นลำดับจากน้อยไปมาก B ระบุลำดับจากมากไปหาน้อย และค่า NULL เป็นค่าที่ไม่เรียงลำดับ
  7. คาร์ดินัลลิตี้: คอลัมน์ที่เจ็ดแสดงความเป็นเอกลักษณ์ของค่าข้อมูล ในดัชนี จะแสดงจำนวนค่าที่ไม่ซ้ำกันโดยประมาณในดัชนีที่ระบุ
  8. ย่อย_ส่วน: คอลัมน์ที่แปดแสดงคำนำหน้าดัชนีด้วยค่า NULL ซึ่งบ่งชี้ว่าทั้งคอลัมน์ได้รับการจัดทำดัชนี
  9. บรรจุ: คอลัมน์ที่เก้าแสดงวิธีการแพ็กคีย์ดัชนี โดยมีค่า NULL แสดงว่าไม่มีการแพ็กคีย์
  10. โมฆะ: คอลัมน์ที่สิบระบุว่าคอลัมน์สามารถมีค่า NULL ได้หรือไม่ ใช่ ถ้าคอลัมน์สามารถมีค่าว่างได้ และว่างเปล่าถ้าไม่ใช่
  11. ดัชนี_ประเภท: คอลัมน์ที่สิบเอ็ดแสดงวิธีการจัดทำดัชนี เช่น BTREE, HASH, RTREE และ FULLTEXT
  12. ความคิดเห็น: คอลัมน์ที่สิบสองแสดงข้อมูลเกี่ยวกับดัชนีที่ไม่ได้อธิบายไว้ในคอลัมน์
  13. ดัชนี_ความคิดเห็น: คอลัมน์ที่สิบสามแสดงข้อมูลเพิ่มเติมเกี่ยวกับดัชนีที่ระบุโดยใช้แอตทริบิวต์ COMMENT เมื่อสร้าง
  14. มองเห็นได้: คอลัมน์ที่สิบสี่คือดัชนีที่มองเห็นได้จากเครื่องมือเพิ่มประสิทธิภาพคิวรี โดยมีค่าใช่และไม่ใช่
  15. การแสดงออก: คอลัมน์ที่สิบห้าจะแสดงขึ้นหากดัชนีใช้นิพจน์ ไม่ใช่ค่านำหน้าคอลัมน์หรือคอลัมน์

คำใบ้: ข้อมูลเกี่ยวกับดัชนีจากแบบสอบถาม SHOW INDEXES จะคล้ายกับของ SQLStatistics

แสดงดัชนีสคีมา

คุณยังสามารถรับข้อมูลดัชนีเกี่ยวกับสคีมาได้อีกด้วย ไวยากรณ์ทั่วไปสำหรับการบรรลุผลนี้มีดังต่อไปนี้:

เลือก table_name, index_name จาก INFORMATION_SCHEMA.STATISTICS โดยที่ TABLE_SCHEMA = schema_name;

พิจารณาข้อความค้นหาด้านล่างที่แสดงข้อมูลเกี่ยวกับสคีมา Sakila:

เลือก table_name, index_name จาก information_schema.statistics WHERE table_schema ='ซากิลา';

ซึ่งจะแสดงข้อมูลเกี่ยวกับดัชนีในสคีมา Sakila ดังแสดงในผลลัพธ์ด้านล่าง:

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

|TABLE_NAME|INDEX_NAME|

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

|นักแสดงชาย|หลัก|

|นักแสดงชาย|idx_actor_last_name|

|ที่อยู่|หลัก|

|ที่อยู่|idx_fk_city_id|

|ที่อยู่|idx_location|

|หมวดหมู่|หลัก|

|เมือง|หลัก|

|เมือง|idx_fk_country_id|

|ประเทศ|หลัก|

|ลูกค้า|หลัก|

|ลูกค้า|idx_fk_store_id|

|ลูกค้า|idx_fk_address_id|

|ลูกค้า|idx_last_name|

|ฟิล์ม|หลัก|

|ฟิล์ม|idx_title|

|ฟิล์ม|idx_fk_language_id|

|ฟิล์ม|idx_fk_original_language_id|

|ภาพยนตร์_นักแสดง|หลัก|

|ภาพยนตร์_นักแสดง|หลัก|

|ภาพยนตร์_นักแสดง|idx_fk_film_id|

|film_category|หลัก|

|film_category|หลัก|

|film_category|fk_film_category_category|

|film_text|หลัก|

|film_text|idx_title_description|

|film_text|idx_title_description|

|รายการสิ่งของ|หลัก|

|รายการสิ่งของ|idx_fk_film_id|

|รายการสิ่งของ|idx_store_id_film_id|

|รายการสิ่งของ|idx_store_id_film_id|

|------------------------------------ เอาต์พุตถูกตัดทอน -------------------- --------

คุณยังสามารถรับข้อมูลจากสคีมาทั้งหมดในเซิร์ฟเวอร์โดยใช้แบบสอบถามที่แสดงด้านล่าง:

เลือก table_name, index_name จาก information_schema.statistics;

บันทึก : ข้อความค้นหาด้านบนทิ้งข้อมูลจำนวนมาก คุณแทบจะไม่ต้องรับดัชนีจากสคีมาทั้งหมด อย่างไรก็ตาม ผลลัพธ์ตัวอย่างอยู่ด้านล่าง:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|หลัก|

|innodb_table_stats|หลัก|

|innodb_index_stats|หลัก|

|innodb_index_stats|หลัก|

|innodb_index_stats|หลัก|

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

บทสรุป

ในบทช่วยสอนนี้ เราได้พูดถึงวิธีใช้แบบสอบถาม MySQL SHOW INDEXES เพื่อรับข้อมูลเกี่ยวกับดัชนีในตาราง เรายังดูที่การใช้ information_schema เพื่อรับข้อมูลเกี่ยวกับดัชนีจากสคีมาหนึ่งรายการหรือทั้งหมดในเซิร์ฟเวอร์ MySQL