real mysql
-
[MySQL] 실행 계획 > Extra 컬럼 > 커버링 인덱스 (Using Index)DevBook 2025. 3. 26. 00:37
데이터 파일을 전혀 읽지 않고 인덱스만으로 쿼리가 처리되는 것실행 계획 확인 시 Extra 컬럼에 "Using Index"가 표시됨이점인덱스를 이용해 처리하는 쿼리에서 가장 큰 부하를 차지하는 부분은 인덱스 검색에서 일치하는 키 값들의 레코드를 읽기 위해 데이터 파일을 검색하는 작업임커버링 인덱스로 처리될 경우 데이터 파일을 읽지 않아도 되기 때문에 쿼리 처리 성능 향상됨주의) 무조건 커버링 인덱스가 정답은 아니다커버링 인덱스로 처리하기 위해 인덱스에 많은 컬럼을 추가하면 인덱스의 크기가 커짐이로인해 메모리 낭비가 심해지고, 레코드를 저장하거나 변경하는 작업이 매우 느려질 수 있음 예시)InnoDB의 모든 테이블은 클러스터링 인덱스로 구성돼 있음InnoDB 테이블의 모든 세컨더리 인덱스는 데이터 주소값으..
-
[MySQL] 인덱스 > 클러스터링 인덱스DevBook 2025. 3. 26. 00:16
MySQL 서버에서 클러스터링은 클러스터링 키를 사용해 테이블의 레코드를 비슷한 것들끼리 묶어서 저장하는 형태로 구현됨주로 비슷한 값들을 동시에 조회하는 경우가 많다는 점에 착안한 것MySQL에서 클러스터링 인덱스는 InnoDB 스토리지 엔진에서만 지원함 클러스터링 인덱스테이블의 PK에 대해서만 적용되는 내용즉, PK 값이 비슷한 레코드끼리 묶어서 저장하는 것을 '클러스터링 인덱스'라고 표현함중요한 것은 PK 값에 의해 레코드의 저장 위치가 결정된다는 것PK 값이 변경되면 그 레코드의 물리적인 저장 위치가 바뀌어야 한다는 것을 의미하기도 함인덱스 알고리즘이라기보다 테이블 레코드의 저장 방식이라고 볼 수 있음클러스터링 인덱스와 클러스터링 테이블은 동의어로 사용되기도 함클러스터링의 기준이 되는 PK를 '클러..