_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

TIL | 1.17.화 [CS 기초지식 | Index]
woncoding/TIL

TIL | 1.17.화 [CS 기초지식 | Index]

2023. 1. 25. 14:28

데이터 베이스

- Index

DB에서 Index란?

  1. 인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조이다.
  2. 검색연산의 최적화를 위해 DB 내 값의 주소정보로 구성된 데이터 구조 (키:주소)
  3. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장 (인덱스 생성 시 데이터를 오름차순으로 정렬)

 

Index는 검색 성능의 속도를 올려주는 좋은 자료구조이지만 모든 데이터 컬럼에 인덱스를 생성하지 않는다. 그 이유는? 

  • 인덱스의 가장 큰 문제점은 정렬된 상태를 계속 유지시켜줘야 한다는 점인데 이런점에서 인덱스는 DML (Data manipulation language)에 아주 취약
  • 인덱스는 테이블의 전체 데이터 중에서 10~15% 이하의 데이터를 처리하는 경우에만 효율적이다.
  • 인덱스를 관리하기 위해서는 데이터베이스의 약 10%에 해당하는 저장공간이 필요하기 때문에 모든 요소에 인덱스를 걸 경우 성능 부하가 올 수 있음

 

- 복합 인덱스 (결합 인덱스)

  • 아래와 같은 두 개 이상의 컬럼을 합쳐서 인덱스를 만들어 효율성을 높인다
    • where절에서 and 조건으로 자주 결합되어 사용되면서 각각의 분포도 보다 두 개 이상의 컬럼이 결합될 때 분포도가 좋아지는 컬럼들
    • 다른 테이블과 조인의 연결고리로 자주 사용되는 컬럼들
    • order by에서 자주 사용되는 컬럼들
    • 하나 이상의 키 컬럼 조건으로 같은 테이블의 컬럼들이 자주 조회될 때
저작자표시 비영리 변경금지 (새창열림)

'woncoding > TIL' 카테고리의 다른 글

TIL | 1.19.목 [CS 기초지식 | 정규화]  (0) 2023.01.25
TIL | 1.18.수 [CS 기초지식 | 트랜잭션]  (0) 2023.01.25
TIL | 1.16.월 [CS 기초지식 | Django 질의응답]  (1) 2023.01.16
TIL | 1.6.금 [CS 기초지식 | 우선순위 큐]  (0) 2023.01.07
TIL | 1.5.목 [CS 기초지식 | 해시 테이블]  (0) 2023.01.05
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 1.19.목 [CS 기초지식 | 정규화]
    • TIL | 1.18.수 [CS 기초지식 | 트랜잭션]
    • TIL | 1.16.월 [CS 기초지식 | Django 질의응답]
    • TIL | 1.6.금 [CS 기초지식 | 우선순위 큐]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바