Câu trả lời trực tiếp cho điều này sẽ là
information_schema.statistic
mysql> desc information_schema.statistics;
+---------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| TABLE_CATALOG | varchar(512) | NO | | | |
| TABLE_SCHEMA | varchar(64) | NO | | | |
| TABLE_NAME | varchar(64) | NO | | | |
| NON_UNIQUE | bigint(1) | NO | | 0 | |
| INDEX_SCHEMA | varchar(64) | NO | | | |
| INDEX_NAME | varchar(64) | NO | | | |
| SEQ_IN_INDEX | bigint(2) | NO | | 0 | |
| COLUMN_NAME | varchar(64) | NO | | | |
| COLLATION | varchar(1) | YES | | NULL | |
| CARDINALITY | bigint(21) | YES | | NULL | |
| SUB_PART | bigint(3) | YES | | NULL | |
| PACKED | varchar(10) | YES | | NULL | |
| NULLABLE | varchar(3) | NO | | | |
| INDEX_TYPE | varchar(16) | NO | | | |
| COMMENT | varchar(16) | YES | | NULL | |
| INDEX_COMMENT | varchar(1024) | NO | | | |
+---------------+---------------+------+-----+---------+-------+
16 rows in set (0.01 sec)
Bạn có thể CHỌN từ bảng đó với
SELECT * FROM information_schema.statistics
WHERE table_schema='mydb' AND table_name='mytable';
hoặc xem số liệu thống kê bằng cách làm
HIỂN THỊ INDEXES TỪ mydb.mytable;
Xin lưu ý rằng bảng này không phải lúc nào cũng chính xác trong môi trường nặng ký. Theo định kỳ, bạn sẽ phải chạy ANALYZE TABLE đối với tất cả các bảng MyISAM được cập nhật thường xuyên. Mặt khác, Trình tối ưu hóa truy vấn MySQL, dựa trên information_schema.statistic, đôi khi có thể đưa ra các lựa chọn không tốt khi phát triển các kế hoạch EXPLAIN cho các truy vấn. Thống kê chỉ số phải được cập nhật nhất có thể.
BẢNG PHÂN TÍCH CÓ TUYỆT ĐỐI KHÔNG CÓ HIỆU QUẢ đối với các bảng InnoDB. Tất cả các số liệu thống kê chỉ mục cho InnoDB được tính toán theo yêu cầu bằng cách lặn vào các trang BTREE. Do đó, khi bạn chạy CHỈ SỐ SHOW TỪ với bảng InnoDB, các số chính được hiển thị luôn là xấp xỉ.
CẬP NHẬT 2011-06-21 12:17 EDT
Để làm rõ BẢNG ANALYZE, hãy để tôi nói lại. Chạy ANALYZE TABLE trên các bảng InnoDB là hoàn toàn vô dụng. Ngay cả khi bạn đã chạy ANALYZE TABLE trên bảng InnoDB, công cụ lưu trữ InnoDB sẽ thực hiện các lần lặn vào chỉ mục cho các xấp xỉ cardinality nhiều lần, do đó, bỏ qua các số liệu thống kê bạn vừa biên dịch . Trên thực tế, Percona đã thực hiện một số thử nghiệm trên ANALYZE TABLE và cũng đi đến kết luận đó.