Study/Real-MySQL

8.2 인덱스란

hongeeii 2023. 12. 26.
728x90
반응형

인덱스란?

많은 사람들이 인덱스를 언급할 때 책의 맨 끝에 있는 찾아보기(색인)로 설명한다.
책의 마지막에 있는 찾아보기가 인덱스에 비유된다면, 책의 내용은 데이터 파일에 해당된다고 볼 수 있다.
찾아보기를 통해 알아낼 수 있는 페이지 번호는 데이터 파일에 저장된 레코드의 주소에 비유될 것이다.


DBMS도 컬럼의 값과 해당 레코드가 저장된 주소를 키와 값의 쌍으로 삼아 인덱스를 만들어 두는 것이다.
또한 정렬을 사용하여 보관하기 때문에 빠르게 찾아갈 수 있다.
데이터가 저장될 때마다 항상 값을 정렬해야하므로 저장하는 과정이 복잡하고 느리지만, 이미 정렬되어 있어서 아주 빨리 원하는 값을 찾아올 수 있다.
결론적으로 DBMS에서 인덱스는 데이터의 저장(INSERT, UPDATE, DELETE)성능을 희생하고 읽기 속도를 높이는 기능이다.
SELECT 쿼리 문장의 WHERE 조건절에 사용되는 칼람이라고 해서 전부 인덱스로 생성하면 데이터 저장 성능이 떨어지고 인덱스의 크기가 비대해져 오히려 역효과만 불러올 수 있다.


DBMS에서 많이 사용하는 인덱스 알고리즘은 B-TREE 알고리즘이다.

728x90
반응형

'Study > Real-MySQL' 카테고리의 다른 글

8.3 B-Tree 인덱스(2)  (2) 2023.12.26
8.3 B-Tree 인덱스(1)  (2) 2023.12.26
8.1 디스크 읽기 방식  (1) 2023.12.26
5.4 MySQL의 격리 수준  (1) 2023.12.26
5.3 InnoDB 스토리지 엔진 잠금  (2) 2023.12.26

추천 글