[SQL] 인덱스 튜닝: Right Growing Index
일반적으로 기본키나 인덱스값들엔 증가하는 값을 넣을 때가 몹시 많다.
mysql의 경우엔 auto_increment를 쓰고,
다른 rdb들에선 시퀀스 등으로 숫자값을 때려넣곤 한다.
혹은 타임스탬프 타입 컬럼에 인덱스를 걸고 삽입될때마다 현재시간을 넣게 할 수도 있다.
이렇게 하면 삽입될때마다 값이 일정하게 증가하기만 한다.
그리고 대부분의 인덱스는 B-Tree를 사용한다.
생각해보자.

B트리는 항상 균형을 유지해야 하는 자료구조다.
근데 값이 계속 현재보다 큰것만 들어와서 오른쪽에만 쌓이면 어떻게 되겠는가?
오버플로가 발생해서 노드를 쪼개는 작업이 아주 빈번하게 일어날 것이다.
중소규모의 시스템에서는 별다른 문제가 없지만, 대규모로 가면 발생할 수 있는 성능 이슈다.
단순 숫자값을 식별자로 쓰는 경우
=> 이 경우엔 현재시간+시퀀스 형태의 문자열을 사용하거나, 아예 보안적으로도 안전한 uuid 등을 사용하는 방법이 있다.
타임스탬프 인덱스
=> 이건 그 자체가 유효한 값이라 좀더 까다로운데... DB에 따라 해결법이 다를 수도 있다. 경우에 따라 다를 수도 있고.
복합 인덱스로 걸어서 해결하는 방법도 있는 것 같다.