2012-03-27 3 views
0

6 천만 개의 행을 포함하는 테이블이 있습니다. 구조는 entryid, date, sourceid, detail, views과 같습니다. (entryid, date, sourceid, detail)은 PK이며, views을 제외한 각 필드의 인덱스도 있습니다.MySQL MyISAM 테이블 인덱스 카디널리티가 0입니다.

문제는 4 개의 색인의 카디널리티가 0이지만 문제가 아니어야한다고 확신합니다.

이유가 궁금합니다. 인덱스가 작동하지 않는다는 것을 의미합니까?

+0

가 null의 경우, 또는 제로? – ajreal

+0

'ANALYZE TABLE'을 실행 해 보았습니까? –

답변

0

테이블 통계가 업데이트되지 않았을 수 있습니다.

this page on optimizing MyISAM tables를 참조하십시오

는, MySQL은 더 나은 쿼리를 최적화하는 데 도움이 사용하는 테이블을 분석하거나이 데이터가로드 된 후 테이블에 myisamchk를 --analyze 실행하려면. 이 값은 동일한 값을 가진 평균 행 수인 을 나타내는 각 인덱스 부분의 값을 업데이트합니다. 고유 인덱스의 경우 이것은 항상 1입니다. MySQL은 이 비 상수 표현식을 기반으로 두 테이블을 조인 할 때 선택할 인덱스를 결정할 때이 방법을 사용합니다. SHOW INDEX FROM tbl_name 및 Cardinality 값을 검사하여 표 분석에서 결과를 확인할 수 있습니다. myisamchk --description --verbose 는 인덱스 분포 정보를 보여줍니다. 인덱스는 is to explain a query 도움이되는지 여부를


가 확인하는 가장 좋은 방법은 :

mysql> explain select 1; 
+----+-------------+-------+------+---------------+------+---------+------+------+----------------+ 
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra   | 
+----+-------------+-------+------+---------------+------+---------+------+------+----------------+ 
| 1 | SIMPLE  | NULL | NULL | NULL   | NULL | NULL | NULL | NULL | No tables used | 
+----+-------------+-------+------+---------------+------+---------+------+------+----------------+ 
1 row in set (0.00 sec) 
관련 문제