0. 왜사용하는가?
table full scan을 막으려고
1. 인덱스는 select의 성능을 향상시킴. 정확히는 where절 column에 index가 걸려있을 경우.
b- tree를 사용하는 것으로 봐서, 최대 logN으로 만들어 줄 것이다.
( 이진트리가 logN으로 좋을 수도 있지만, 편향될 수 있어서, B-tree를 사용하면 편향도가 줄어든다)
insert, update, delete의 성능은 하락시킴
2. clustered vs non clustered
클러스터드 인덱스의 경우 auto incremented id (pk)로 이해하면 쉬움
중간에 값을 추가하면 성능상의 손실 ( 다시 재정렬해야되므로)
non clustered index의 경우 -> 중간에 값을 추가하는 것에 상대적으로 낫지만
그래도 추가적인 공간이 필요하며, 추가적인 공간이 필요함.
중간에 값을 추가하지 않는 경우, 클러스터드 인덱스가 효율적임
3. cardinality가 높을 수록 효율적임
구분될수록 효율적(같은 값을 이진탐색트리에 넣는 다고 생각해보자)
4. 인덱스 종류는 다양하다