[mysql] MySQL의 카디널리티는 무엇입니까?

MySQL의 카디널리티는 무엇입니까? 간단하고 기술적이지 않은 언어로 설명하십시오.

테이블의 인덱스 세부 정보에 필드의 카디널리티가 group_id11로 표시되는 경우 이는 무엇을 의미합니까?



답변

최대 카디널리티 : 모든 값이 고유합니다.

최소 카디널리티 : 모든 값이 동일합니다.

일부 열은 모든 행에 동일한 값을 넣는 것을 금지하는 제약 조건 (예 : 고유)이 있기 때문에 높은 카디널리티 열이라고합니다.

카디널리티는 데이터를 클러스터링, 정렬 및 검색하는 기능에 영향을주는 속성입니다. 따라서 DB의 쿼리 플래너에게 중요한 측정이며 최상의 계획을 선택하는 데 사용할 수있는 휴리스틱입니다.


답변

Wikipedia는 SQL의 카디널리티 를 다음과 같이 요약 합니다.

에서는 SQL (구조적 질의어) 용어 카디널리티 받는 지칭 고유성 (A)의 특정 열 (속성)에 포함 된 데이터 값의 데이터베이스 테이블 . 카디널리티가 낮을수록 열에서 더 많은 요소가 중복됩니다. 따라서 가능한 가장 낮은 카디널리티를 가진 열은 모든 행에 대해 동일한 값을 갖습니다. SQL 데이터베이스는 카디널리티를 사용 하여 주어진 쿼리에 대한 최적의 쿼리 계획 을 결정합니다 .


답변

인덱스의 고유 값 수에 대한 추정치입니다.

단일 기본 키 열이있는 테이블의 경우 카디널리티는 일반적으로 테이블의 행 수와 같아야합니다.

추가 정보 .


답변

기본적으로 Kami가 링크 한 Wikipedia 기사에 따라 열 값의 고유성 정도와 관련이 있습니다.

고려하는 것이 중요한 이유는 인덱싱 전략에 영향을 미치기 때문입니다. 인덱스가 사용하기에 충분히 선택적이지 않기 때문에 가능한 값이 2 개 뿐인 낮은 카디널리티 열을 인덱싱하는 지점이 거의 없습니다.


답변

카디널리티가 높을수록 행의 차별화가 더 좋습니다. 차별화는 데이터를 얻기 위해 더 적은 분기를 탐색하는 데 도움이됩니다.

따라서 더 높은 코디 널리 티 값은 다음을 의미합니다.

  • 읽기 쿼리 성능 향상
  • 더 큰 데이터베이스 크기;
  • 숨겨진 인덱스 데이터가 업데이트되고 있기 때문에 쓰기 쿼리 성능이 저하됩니다.

답변

수학적 용어에서 카디널리티는 값 집합에있는 값의 개수입니다. 집합에는 고유 한 값만 포함될 수 있습니다. 예를 들어 “A”세트가 있습니다.

집합 “A”를 A = {1,2,3}로 설정합니다. 해당 집합의 카디널리티는 | 3 |입니다.

집합 “A”에 5 개의 값 A = {10,21,33,42,57}이 포함 된 경우 카디널리티는 | 5 |입니다.

이것이 mysql의 맥락에서 의미하는 바는 테이블 열의 카디널리티가 해당 열의 고유 값 수라는 것입니다. 기본 키 열 (예 : table.id)의 카디널리티를보고있는 경우 해당 열의 카디널리티는 테이블의 각 행에 대해 하나의 고유 ID가 있으므로 해당 테이블에 포함 된 행 수를 알려줍니다. 테이블에있는 행 수를 확인하기 위해 해당 테이블에서 “COUNT (*)”를 수행 할 필요가 없습니다. 단순히 카디널리티 만 확인하면됩니다.


답변

간단히 말해서 카디널리티는 테이블 내의 행 또는 튜플의 수입니다. 열 수를 “정도”라고합니다.