본문 바로가기

인덱스

(2)
Real MySQL 9장 옵티마이저와 힌트 #2 (9.3~) 9.3 고급 최적화 MySQL 옵티마이저는 실행 계획을 수립할 때 통계 정보와 옵티마이저 옵션을 결합해서 최적의 실행 계획을 수립한다. 여기서 옵티마이저 옵션은 크게 조인과 관련된 옵티마이저 옵션과 옵티마이저 스위치로 구분할 수 있다. 9.3.1 옵티마이저 스위치 옵션 옵티마이저 스위치 옵션은 optimizer_switch 시스템 변수를 이용해서 제어한다. 9.3.1절 하위의 옵션들을 on, off, default로 설정하여 사용할 수 있다. 9.3.1.1을 제외한 모든 설정 옵션은 기본값이 on이다. 9.3.1.1 MRR과 배치 키 액세스(mrr & batched_key_access) MRR은 Multi Range Read를 줄여서 부르는 말이다. MySQL 서버는 조인 대상 테이블 중 하나로부터 레코.. 더보기
Real MySQL 8장 인덱스 #2 (8.6~) 8.6 함수 기반 인덱스 일반적으로 인덱스는 칼럼의 값 일부 또는 전체에 대해서만 인덱스 생성이 허용된다. 하지만 때로는 칼럼의 값을 변형해서 만들어진 값에 대해 인덱스를 구축하는 것도 필요하다. 함수 기반 인덱스를 구현하는 방법은 다음 두 가지로 구분할 수 있다. 가상 칼럼을 이용한 인덱스 함수를 이용한 인덱스 함수 기반 인덱스는 인덱싱할 값을 계산하는 과정의 차이만 있을 뿐, 실제 인덱스의 내부적인 구조 및 유지관리 방법은 B-Tree 인덱스와 동일하다. 8.6.1 가상 칼럼을 이용한 인덱스 MySQL 8.0 버전 부터는 가상 칼럼을 추가하고 그 가상 칼럼에 인덱스를 생성할 수 있게 됐다. ALTER TABLE user ADD full_name VARCHAR(30) AS (CONCAT(first_na.. 더보기