Cách hiển thị tất cả các chỉ mục trong MySQL hoặc Lược đồ

How Show All Indexes Mysql



Chỉ mục cơ sở dữ liệu MySQL đề cập đến một loại cấu trúc dữ liệu được sử dụng làm tổ chức dữ liệu trong cơ sở dữ liệu và giúp nâng cao tốc độ của các hoạt động khác nhau được thực hiện trong MySQL.

Chỉ mục rất hữu ích. Nếu không có chúng, MySQL phải quét toàn bộ bảng để tìm các hàng và cột có liên quan, điều này có thể rất kém hiệu quả trong cơ sở dữ liệu lớn.







Hướng dẫn này sẽ tập trung vào cách xem thông tin chỉ mục bằng cách sử dụng mệnh đề SHOW INDEXES trong MySQL.



Hiển thị chỉ mục Bảng

Để hiển thị thông tin chỉ mục trên một bảng, chúng tôi sử dụng mệnh đề SHOW INDEXES theo sau là tên của bảng mà chúng tôi muốn lấy thông tin chỉ mục.



Cú pháp chung được hiển thị như sau:





HIỂN THỊ CHỈ SỐ tbl_name;

Ví dụ, hãy xem xét một trong các bảng trong cơ sở dữ liệu mẫu Sakila. Chúng tôi có thể nhận được thông tin chỉ mục như được hiển thị trong truy vấn dưới đây:

SỬ DỤNG rượu sakila;

HIỂN THỊ CÁC CHỈ SỐ TỪ phim;

Truy vấn trên sẽ hiển thị thông tin chỉ mục từ bảng phim trong cơ sở dữ liệu Sakila. Đầu ra là:



Tìm hiểu thông tin chỉ mục

Lệnh SHOW INDEXES hiển thị thông tin liên quan về các chỉ mục trong bảng được chỉ định.

Dưới đây là các điều khoản sau và thông tin tương ứng của chúng được cung cấp:

  1. Bàn: Đây là cột đầu tiên từ đầu ra. Nó hiển thị tên của bảng nơi chứa chỉ mục.
  2. Không duy nhất: Cột thứ hai cho biết liệu chỉ mục có thể chứa một bản sao hay không. Giá trị là Boolean, với 1 cho biết chỉ mục có thể chứa các bản sao và 0 nếu ngược lại.
  3. Key_name: Cột thứ ba hiển thị tên của chỉ mục. Theo quy ước, khóa chính lấy tên chỉ mục là PRIMARY.
  4. Seq_in_index: Cột thứ tư hiển thị số thứ tự cột trong chỉ mục bắt đầu từ giá trị 1.
  5. Tên cột dọc: Cột thứ năm chỉ đơn giản là tên cột.
  6. Đối chiếu: Cột thứ sáu là phần hiển thị cách sắp xếp cột trong chỉ mục. Có ba giá trị sắp xếp, với A là thứ tự Tăng dần, B cho biết thứ tự Giảm dần và NULL là không được sắp xếp.
  7. Cardinality: Cột thứ bảy hiển thị tính duy nhất của giá trị dữ liệu. Trong chỉ mục, nó hiển thị số lượng ước tính các giá trị duy nhất trong chỉ mục cụ thể.
  8. Sub_part: Cột thứ tám hiển thị tiền tố chỉ mục với NULL, cho biết toàn bộ cột đã được lập chỉ mục.
  9. Đóng gói: Cột thứ chín hiển thị cách các khóa chỉ mục được đóng gói, với NULL cho biết các khóa không được đóng gói.
  10. Vô giá trị: Cột thứ mười chỉ định xem cột có thể chứa giá trị NULL hay không. Có, nếu cột có thể chứa giá trị rỗng và trống nếu không.
  11. Index_type: Cột thứ mười một hiển thị phương pháp chỉ mục như BTREE, HASH, RTREE và FULLTEXT.
  12. Bình luận: Cột thứ mười hai hiển thị thông tin về một chỉ mục không được mô tả trong cột của nó.
  13. Index_comment: Cột thứ mười ba hiển thị thông tin bổ sung về chỉ mục được chỉ định bằng cách sử dụng thuộc tính COMMENT khi được tạo.
  14. Dễ thấy: Cột thứ mười bốn là chỉ mục hiển thị cho trình tối ưu hóa truy vấn, với các giá trị Có và Không.
  15. Biểu hiện: Cột thứ mười lăm hiển thị nếu chỉ mục sử dụng một biểu thức chứ không phải giá trị tiền tố cột hoặc cột.

GỢI Ý: Thông tin về các chỉ mục từ truy vấn SHOW INDEXES tương tự như thông tin của SQLSt Statistics.

Hiển thị chỉ mục lược đồ

Bạn cũng có thể nhận thông tin chỉ mục về một lược đồ. Cú pháp chung để đạt được kết quả này như sau:

SELECT table_name, index_name FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = schema_name;

Hãy xem xét truy vấn dưới đây hiển thị thông tin về lược đồ Sakila:

CHỌN table_name, index_name FROM information_schema.stosystem WHERE table_schema ='sakila';

Điều này sẽ hiển thị thông tin về các chỉ mục trong lược đồ Sakila như được hiển thị trong đầu ra bên dưới:

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

|TABLE_NAME|INDEX_NAME|

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

|diễn viên|SƠ CẤP|

|diễn viên|idx_actor_last_name|

|Địa chỉ|SƠ CẤP|

|Địa chỉ|idx_fk_city_id|

|Địa chỉ|idx_location|

|thể loại|SƠ CẤP|

|thành phố|SƠ CẤP|

|thành phố|idx_fk_country_id|

|Quốc gia|SƠ CẤP|

|khách hàng|SƠ CẤP|

|khách hàng|idx_fk_store_id|

|khách hàng|idx_fk_address_id|

|khách hàng|idx_last_name|

|phim ảnh|SƠ CẤP|

|phim ảnh|idx_title|

|phim ảnh|idx_fk_language_id|

|phim ảnh|idx_fk_original_language_id|

|Diễn viên điện ảnh|SƠ CẤP|

|Diễn viên điện ảnh|SƠ CẤP|

|Diễn viên điện ảnh|idx_fk_film_id|

|film_category|SƠ CẤP|

|film_category|SƠ CẤP|

|film_category|fk_film_category_category|

|film_text|SƠ CẤP|

|film_text|idx_title_description|

|film_text|idx_title_description|

|kiểm kê|SƠ CẤP|

|kiểm kê|idx_fk_film_id|

|kiểm kê|idx_store_id_film_id|

|kiểm kê|idx_store_id_film_id|

|----------------------------- ĐẦU RA XỬ LÝ ------------------- -------

Bạn cũng có thể lấy thông tin từ tất cả các lược đồ trong máy chủ bằng cách sử dụng truy vấn được hiển thị bên dưới:

SELECT table_name, index_name FROM information_schema.st Statistics;

GHI CHÚ : Truy vấn trên kết xuất rất nhiều thông tin. Hiếm khi bạn cần lấy chỉ mục từ tất cả các lược đồ. Tuy nhiên, một đầu ra mẫu dưới đây:

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

|TABLE_NAME|INDEX_NAME|

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

|innodb_table_stats|SƠ CẤP|

|innodb_table_stats|SƠ CẤP|

|innodb_index_stats|SƠ CẤP|

|innodb_index_stats|SƠ CẤP|

|innodb_index_stats|SƠ CẤP|

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

Phần kết luận

Trong hướng dẫn này, chúng ta đã thảo luận về cách sử dụng truy vấn MySQL SHOW INDEXES để lấy thông tin về các chỉ mục trong bảng. Chúng tôi cũng đã xem xét việc sử dụng information_schema để lấy thông tin về các chỉ mục từ một hoặc tất cả các lược đồ trong máy chủ MySQL.