반응형
대응하는 컬럼에 2개의 고유값이 저장되어 있는데도 카디널리티가 "1"로 보고된다.
인덱스를 조정하여 데이터베이스를 최적화하려고 합니다.
SHOW INDEXES FROM my_table
출력
Table ... Key_name ... Column_name ... Cardinality ...
---------------------------------------------------------------------
my_table ... idx_field1 ... field1 ... 1 ...
하는 동안에
SELECT field1 FROM my_table PROCEDURE ANALYSE()\G
출력
*************************** 1. row ***************************
Field_name: my_db.my_table.field1
Min_value: ow
Max_value: rt
Min_length: 2
Max_length: 2
Empties_or_zeros: 0
Nulls: 0
Avg_value_or_avg_length: 2.0000
Std: NULL
Optimal_fieldtype: ENUM('ow','rt') NOT NULL
1 row in set (0.26 sec)
즉, 보고된 카디널리티(1)가 고유값(2)의 수와 같지 않습니다.왜일까요?
추신. 저는 공연을 했습니다.
analyze table my_table
를 참조해 주세요.
의 '카디널리티'SHOW INDEXES
는 근사치입니다. ANALYSE()
는 테이블의 완전 스캔에서 파생되므로 정확한 값을 가져옵니다.
전자는 쿼리를 최적화하는 방법을 결정하는 데 사용됩니다.일반적으로 낮은 카디널리티(1 또는 2)는 해당 필드의 인덱스를 사용할 가치가 없음을 나타냅니다.
당신은 이 질문을 가지고 어디로 가고 있습니까?
언급URL : https://stackoverflow.com/questions/34634005/cardinality-is-reported-as-1-even-though-there-are-2-unique-values-stored-for
반응형
'programing' 카테고리의 다른 글
Mysql 5.7에서 JSON 어레이 내의 특정 개체를 갱신하는 방법 (0) | 2022.11.29 |
---|---|
PHP 응용 프로그램이 도커 작성을 사용하여 MariaDB에 연결할 수 없습니다. (0) | 2022.11.29 |
PHPMyAdmin 오류: #126 - 테이블의 잘못된 키 파일 (0) | 2022.11.29 |
대소문자를 구분하지 않는 교환 (0) | 2022.11.29 |
Python을 사용하여 RESTful API에 요청하기 (0) | 2022.11.29 |