Skip to content

Commit

Permalink
잘못된 내용 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
kdkdhoho committed Feb 1, 2024
1 parent 1b3c317 commit 001682e
Showing 1 changed file with 6 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,7 @@ MySQL은 디스크에 데이터를 저장하는 가장 작은 기본 단위를 <

인덱스 키 값이 크기가 늘어나면, 하나의 페이지에서 저장할 수 있는 인덱스는 줄어든다.<br>
하나의 페이지에서 저장할 수 있는 인덱스가 줄어들면, 그만큼 페이지를 더 많이 만들어야 한다.<br>
이는 결국, B-Tree 자료구조의 depth가 길어지는 결과를 낳는다.

트리 자료구조에서 조회의 성능에 직접적인 영향을 미치는 것이 바로 이 depth이다.<br>
depth가 길어진다면 인덱스의 조회 성능에도 악영향을 미칠 것이다.
페이지가 늘어날 수록 한 페이지에서 조회할 수 있는 레코드의 수가 적으므로 더 많은 페이지를 뒤져야 한다.

결국, <u>인덱스 키 값의 크기가 작을 수록 인덱스를 이용한 조회 성능이 향상된다.</u>

Expand Down Expand Up @@ -198,12 +195,14 @@ mysql> SHOW STATUS LIKE 'Handler_%';

#### 6-1. 비교 조건의 종류와 효율성

다중 칼럼 인덱스에서 각 칼럼의 순서와 그 칼럼에 적용된 조건이 동등 비교인지 아니면 대소 비교 같은 범위 조건인지에 따라 인덱스 활용 형태가 달라진다.
다중 칼럼 인덱스에서 각 <u>칼럼의 순서와 그 칼럼에 적용된 조건이 동등 비교인지 아니면 대소 비교 같은 범위 조건인지에 따라 인덱스 활용 형태가 달라진다.</u>

![](example-1.png)

위 그림을 보면 왼쪽의 경우 인덱스 칼럼과 조건절의 순서가 일치하다. 이 경우에는 인덱스 레인지 스캔 방식으로 조회한다.<br>
하지만 오른쪽의 경우 인덱스의 칼럼와 조건절의 순서가 반대이다. 이때는 첫 번째 칼럼을 인덱스 레인지 스캔하지만 그 과정에서 필요없는 레코드를 조회하게 된다.<br>
여기서 눈여겨 볼 것은 dept_no는 `=` 검색이고 emp_no는 `>=` 비교이다.<br>
이때 인덱스 칼럼의 순서가 `(dept_no, emp_no)` 이냐 `(emp_no, dept_no)`에 따라 인덱스를 조회하는 방식이 달라진다.

범위 조건 비교 (`>=`) 보다 동등 조건 비교 (`=`)가 값을 조회하기엔 더 최적화된 조건이므로, dept_no 칼럼이 선행된 인덱스의 경우 더 효율적으로 조회할 수 있는 것이다.

#### 6-2. 인덱스의 가용성

Expand Down

0 comments on commit 001682e

Please sign in to comment.