월: 2015 11월

Multiple-Column Indexes & ICP (Index Condition Pushdown)

1. 복합키
http://jorgenloland.blogspot.kr/2011/08/mysql-range-access-method-explained.html

CREATE TABLE orders (
order_id INT NOT NULL PRIMARY KEY,
customer_id INT,
value INT,
order_date DATE,
KEY custid_value (customer_id, value)
)

customer_id = 2 and value > 1000 — 키파트 1, 키파트 2 사용
customer_id < 2 and value = 1000 — 키파트 1 사용, customer_id < 2 인 모든 레코드를 스토리지엔진에서 획득

(1)복합키 내 키파트을 좌로부터 보았을 때 =, <=>, IS NULL 비교가 들어가지 않고
>, <, >=, <=, !=, <>, BETWEEN, LIKE 를 만나면 뒤에 나열된 키파트들을 사용하지 않음
5.5, 5.6 에서 인덱스키가 사용되느냐 아니냐 하는 복합키의 키파트 선택은 동일

2. ICP
http://jorgenloland.blogspot.kr/2012/03/index-condition-pushdown-to-rescue.html#more
http://olavsandstaa.blogspot.co.uk/2011/04/mysql-56-index-condition-pushdown.html

5.6의 ICP는 (1)에서 키를 타지 않고 무시된 뒤의 키파트에 대한 처리 시
레코드들을 가지고 올 때 얼마나 덜 가지고 올지를 결정