이에 대한 직접적인 대답은
information_schema.statistics
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)
당신은 그 테이블에서 선택할 수 있습니다
SELECT * FROM information_schema.statistics
WHERE table_schema='mydb' AND table_name='mytable';
또는 수행하여 통계를 참조하십시오
mydb.mytable에서 색인 표시;
이 테이블은 쓰기가 많은 환경에서 항상 정확한 것은 아닙니다. 정기적으로 자주 업데이트되는 모든 MyISAM 테이블에 대해 ANALYZE TABLE 을 실행해야합니다 . 그렇지 않으면 information_schema.statistics에 의존하는 MySQL Query Optimizer가 쿼리에 대한 EXPLAIN 계획을 개발할 때 때때로 잘못된 선택을 할 수 있습니다. 인덱스 통계는 가능한 최신 상태 여야합니다.
ANALYZE TABLE에는 InnoDB 테이블에 대한 영향이 전혀 없습니다. InnoDB에 대한 모든 인덱스 통계는 BTREE 페이지로 다이빙하여 요청시 계산됩니다. 따라서 InnoDB 테이블에 대해 SHOW INDEXES FROM을 실행할 때 표시되는 카디널리티는 항상 근사치입니다.
업데이트 2011-06-21 12:17 EDT
ANALYZE TABLE의 설명을 위해, 다시 말하겠습니다. InnoDB 테이블에서 ANALYZE TABLE을 실행하는 것은 완전히 쓸모가 없습니다. InnoDB 테이블에서 ANALYZE TABLE을 실행 한 경우에도 InnoDB 스토리지 엔진은 카디널리티 근사치에 대한 인덱스를 여러 번 반복해서 인덱스에 표시합니다. 나누 방금 컴파일 한 통계를 버립니다 . 실제로 Percona는 ANALYZE TABLE에서 몇 가지 테스트를 수행했으며 그 결론에 도달했습니다.