목차
1. 인덱스란?
2. 데이터베이스의 인덱스
3. 무조건 쓰는 것이 좋을까?
4. 테스트
1. 인덱스란?
- 데이터베이스 테이블의 검색 속도롤 향상시키기 위한 자료구조
인덱스를 번역하면 색인이라고 하며 책 뒤쪽에 여러 단어들과 페이지가 나와있는 것을 말한다. 우리는 이 색인을 참고하여 원하는 내용를 쉽고 빠르게 확인할 수 있다. 데이터베이스도 이런 색인 기능을 제공하여 사용자가 데이터를 검색할 때 빠르게 검색 결과를 제공한다.
2. 데이터베이스의 인덱스
1 ). 인덱스 생성
빠른 검색기능을 제공하는 인덱스는 어떻게 만들까? 검색할 테이블과 어떤 컬럼을 기준으로 인덱싱을 할 것인지 정하여 만들면 된다. 주로 기본키를 기준으로 한다.
CREATE INDEX [인덱스명] ON [검색할 테이블]([기준이 될 컬럼])
MYSQL에서는 기본적으로 테이블 생성할 시 기본키를 지정하면 index도 같이 생성된다.
2 ) 인덱스가 데이터를 찾는 과정
인덱스는 위 그림과 같이 쿼리에 따라 key에 해당 하는 값을 통해 테이블의 데이터를 빠르게 찾는다.
3. 무조건 쓰는 것이 좋을까?
검색 속도를 높여준다는 인덱스를 무조건 많이 만들면 좋지 않을까? 당연하게도 아니다.
인덱스는 검색에 대한 성능을 높여줄 수 있지만 별도의 저장공간을 필요로 하며 관리를 위한 추가적인 작업을 필요로 한다.
또한 인덱스를 UPDATE, DELETE같은 연산이 빈번하게 일어나는 속성에 부여하게 되면 오히려 성능이 저하되는 역효과가 나타나게 된다.
4. 테스트
id가 5000~10000사이의 데이터 조회
1 ) 인덱스가 있는 테이블 조회
2 ) 인덱스가 없는 테이블 조회
3 ) 테스트 결과
테스트 결과 인덱스가 있는 테이블이 약 40밀리초 , 없는 테이블이 600밀리초
인덱스가 있는 테이블의 검색속도가 훨씬 빨랐다.
물론 데이터의 양과 검색 조건에 따라 속도는 달라지겠지만 인덱스를 사용하는 것이 빠르다는 것을 확인하였다.
참고자료
https://mangkyu.tistory.com/96
[Database] 인덱스(index)란?
1. 인덱스(Index)란? [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내
mangkyu.tistory.com
https://www.donga.com/news/Opinion/article/all/20171106/87121703/1
[표정훈의 호모부커스]색인
‘찾아보기’로 일컬어지는 색인(索引)은 책에서 중요한 단어나 항목, 고유명사 등을 쉽게 찾을 수 있도록, 그것들을 일정 순서에 따라 배열한 목록이다. 소설에는 색인이 필요 없어 …
www.donga.com
'데이터베이스' 카테고리의 다른 글
데이터베이스는 어떻게 동작할까? (0) | 2024.06.17 |
---|---|
SQL (0) | 2024.06.12 |
데이터 베이스 (2) | 2024.06.11 |