database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 23041 게시물 읽기
No. 23041
[질문] 인덱스정보를 보았을때 Cardianlity갯수가 차이가 나는 이유는?
작성자
전득진
작성일
2005-01-27 18:59
조회수
1,330

STATISTICS테이블이 있고 select 시간을 단축시키기 위하여 다음과 같이 인덱스를 걸었습니다.

그런데 IDX_ST_TO 인덱스는

ST_TO, ST_DATE 두개의 필드에 걸어주었고

Cardinality를 보면

ST_TO 9738

ST_DATE 1071262

되어있는데 그 차이점이 무엇인지 궁금합니다. 그리고 어떠한 경우가 더 빠른 검색을 수행하는지도

알려주세요.

(IDX_DATE_ACT 와 같은 인덱스는 두개의 필드에 Cardinality 갯수가 똑같습니다.)

 

답변을 부탁드립니다. ~~!!

 

 

show index from STATISTICS;

 

+------------+------------+----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+------------+------------+----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| STATISTICS | 0 | PRIMARY | 1 | ST_SEQ | A | 1071262 | [NULL] | [NULL] | | BTREE | |
| STATISTICS | 1 | IDX_ST_DATE | 1 | ST_DATE | A | 357087 | [NULL] | [NULL] | | BTREE | |
| STATISTICS | 1 | IDX_ST_PACK_ID | 1 | ST_PACK_ID | A | 5 | [NULL] | [NULL] | | BTREE | |
| STATISTICS | 1 | IDX_ST_TO | 1 | ST_TO | A | 9738 | [NULL] | [NULL] | | BTREE | |
| STATISTICS | 1 | IDX_ST_TO | 2 | ST_DATE | A | 1071262 | [NULL] | [NULL] | | BTREE | |
| STATISTICS | 1 | IDX_DATE_ACT | 1 | ST_DATE | A | 357087 | [NULL] | [NULL] | | BTREE | |
| STATISTICS | 1 | IDX_DATE_ACT | 2 | ST_ACTION | A | 357087 | [NULL] | [NULL] | | BTREE | |
+------------+------------+----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

이 글에 대한 댓글이 총 1건 있습니다.

선택도와 비슷한 개념입니다.

 

Cardinality는 "가짓수"라고 보시면 될 듯 합니다.

 

일반적으로 10000개의 인적정보가 있다고 했을 때

이름의 경우에는 약 9000개가 있을 수 있겠죠(이름같은사람도 있으니)

성만을 보게 된다면 훨씬 적은 수가 있을 것이고.

시/도만 보게 된다면 더 적은 수가 있겠죠?

성별을 본다면 "남/여" 두가지가 있을 것이구요.

 

이런 경우의 가짓수가 Cardinality입니다.

select count(distinct column) from table 했을때의 결과기도 하군요

 

일반적으로 index가 걸려 있을때,

Cardinality / 전체row수 의 값이 1에 가까울수록 검색이 빠릅니다.

 

장홍창(changaya)님이 2005-01-27 19:43에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
23044insert구문 작성시 PHP함수 사용건 입니다.! [2]
권현수
2005-01-27
1225
23043테이블에 입력한 문장순서말이예요
caroline
2005-01-27
880
23042특정필드의 값을 계산하여 유니온으로 뿌릴려고합니다.
김동명
2005-01-27
1108
23041[질문] 인덱스정보를 보았을때 Cardianlity갯수가 차이가 나는 이유는? [1]
전득진
2005-01-27
1330
23040mysql4.1버전 사용중입니다 [1]
류성률
2005-01-27
1834
230394.1에서 4.0으로 다운그레이드 어떻게 해야 되는지....좀 도와주세요
hills
2005-01-27
1182
23038급한답변부탁드립니다. mysql 서비스동작이 안되서 봤더니 1067에러인데.. [1]
김상렬
2005-01-27
2503
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다