Backend

인덱스(1) : 인덱스를 사용하는 이유, 인덱스의 정의, 인덱스에 저장되는 데이터

연_우리 2024. 7. 17. 22:42
반응형

 

 

인덱스 왜 사용해야하나요?

문제상황

데이터 10억개가 저장되어 있습니다.

아래 SQL문을 실행하면 데이터베이스는 어떻게 데이터를 검색할까요?

SELECT * FROM Employees WHERE Name = 'Alice';

데이터베이스는 Full Table Scan 방식을 이용하여 데이터를 검색합니다.

 

Full Table Scan

  • 테이블의 첫번째 행부터 마지막 행까지 모든 행을 순차적으로 검사하는 방법입니다.
  • 단점 : 시간이 오래 걸립니다.

 

해결방법

인덱스를 적용합니다.

 

 

 

인덱스란 무엇인가요?

책 뒷면의 색인과 매우 유사합니다.

💡 인덱스는 데이터를 빠르게 찾기 위해 사용하는 자료구조입니다.

 

 

아래와 같은 순서대로 인덱스에 대해 살펴보겠습니다.

  • 인덱스가 어떤 데이터를 가지고 있는지
  • 인덱스는 어떤 방식으로 데이터를 빠르게 검색하는지
  • 인덱스엔 어떤 종류가 있는지
  • 인덱스를 어떻게 사용하면 되는지

 

 

 

인덱스는 어떤 데이터를 가지고 있나요?

💡 테이블의 특정 컬럼 값과 레코드의 위치를 맵핑한 데이터를 가지고 있습니다.

  • 저장공간 필요

인덱스도 데이터이기 때문에 저장될 공간이 있어야합니다.

보통 데이터베이스의 10% 공간을 할당해주어야 합니다.

(MySQL InnoDB의 경우, 테이블과 동일한 테이블스페이스 파일에 저장됩니다.)

 

  • 데이터 동기화 필요

인덱스가 맵핑 데이터라는 뜻은..

테이블에 데이터를 추가, 수정, 삭제할 때

인덱스도 동일하게 추가, 수정, 삭제 되어야 한다는 것입니다.

 

 

⇒ 걱정마세요! 동기화 과정은 데이터베이스 엔진이 백그라운드에서 자동으로 처리해줍니다.

 

 

 

다음 게시물

https://lotuus.tistory.com/167

 

인덱스(2) : 인덱스가 데이터를 검색하는 방법

목차 이전 게시물 https://lotuus.tistory.com/166 인덱스(1) : 사용하는 이유, 정의, 데이터목차  인덱스 왜 사용해야하나요?문제상황데이터 10억개가 저장되어 있습니다.아래 SQL문을 실행하면 데이터

lotuus.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오톡 공유하기