더북(TheBook)

코드 10-9를 보면 WHERE 절에서 name을 사용하고 있지요. name에 대해 인덱스를 생성해 두었으므로 B+ 트리를 사용해서 탐색할 것입니다.

인덱스를 생성할 때는 유의 사항이 있습니다. 탐색 속도를 향상시킬 목적으로 생성한 인덱스를 더 이상 탐색할 필요가 없을 때는 반드시 삭제하는 것이 좋습니다. 인덱스는 B+ 트리를 구성합니다. 이 때문에 탐색 속도는 월등히 향상되지만, 레코드의 삽입과 삭제가 빈번히 일어나면 insert 연산의 split이나 delete 연산의 donate, merge 등이 발생하여 데이터베이스 성능을 크게 저하시킬 수 있습니다. 게다가 테이블 크기가 커지면 B+ 트리 자체의 크기도 커져 용량을 차지합니다. 물론 B+ 트리도 하드 디스크에 저장되므로 용량을 크게 신경 쓰지 않아도 된다고 생각할지 모르지만, 리소스가 낭비되는 것은 엄연한 사실입니다. 그러므로 인덱스를 더 이상 사용하지 않을 때는 반드시 삭제해야 합니다.

이로써 8장부터 이어 온 트리 자료 구조 이야기를 모두 마쳤습니다. 트리 자료 구조는 삽입, 탐색, 삭제가 대체적으로 빠른 편입니다. 트리에 대한 튼튼한 지식을 바탕으로 앞으로 애플리케이션을 만들 때 성능에 신경 쓰면서 프로그래밍할 수 있을 것입니다. 다음 장에서는 또 다른 트리 구조인 힙과 힙을 활용한 우선순위 큐를 알아보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.