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

     

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