티스토리 뷰

반응형

열손가락 깨물어서

안아픈 손가락이 있겠냐마는

SQL을 이야기 할 때

빼놓을 수 없는 것 중에 하나가

역시 인덱스가 아닌가 싶다.

주로 검색속도향상을 위해 작성되는 인덱스는

DB튜닝을 하고자 한다면

절대로 간과해서는 안될 부분이라고 생각한다.

요즘 인덱스에 대해서 다시 한 번 차근차근 살펴보고 있는 이유도 있고해서

인덱스와 관련된 자료에 대해서 좀 정리해 보는 시간을 가지고자 한다.


인덱스(Index)란?

책을 예를들어 차례 또는 색인 이라고 생각하면 쉽다.

특정 키워드를 책에서 찾는다면

책의 첫 페이지부터 시작해서 마지막 페이지까지 나올때까지 찾는 방법.

그리고 차례에서 찾고싶은 주제를 찾거나

가나다 혹은 ABC 순으로 되어있는 색인에서 해당 키워드를 찾아서 관련 페이지로 이동하는 방법이 있을것이다.

첫번째 방법이 SQL에서 이야기하는 TableScan이며 두번째가 바로 색인검색(Index Seek)이다.

결과는 일반적으로 색인검색이 테이블스캔보다 검색속도가 월등히 빠르다.
(하지만, 모든 경우에서 빠르다는 이야기가 아니다. 차라리 테이블 스캔이 더 나은 경우도 있다.)

인덱스는 SQL의 성능에 아주 많은 영향을 준다. 그렇기 때문에 가능한 최적화를 해야만 하는 것이다.

그러나, 세상만사가 다 그렇듯 중요한 것일수록 잘 하기가 어렵기 마련인듯 하다. ㅎㅎㅎ

그만큼 인덱스를 잘 만들기가 어렵기 때문이다.


어떻게 사용하느냐에 따라 SQL성능을 향상시킬수도 있고 오히려 독이 될 수도 있는

양날의 검 인덱스를 간단하게 정리해 보았다.

앞으로는 인덱스를 왜 만들어야 하는지, 인덱스의 종류와 각각의 장점 단점, 인덱스의 조각화 등등에 대해서

좀 더 정리해 보는 시간을 가져보도록 하겠다.








블로그코리아에 블UP하기
반응형
댓글
반응형
12-03 08:04
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함