728x90
반응형

인덱스

  • 검색 속도를 높이기 위한 색인 기술
  • JOIN / WHERE 에 사용됨
  • 인덱스 없는 데이터 조회 시
    • 전체 데이터 페이지의 첫 레코드 -> 마지막 레코드까지 모두 조회 == FULL SCAN
    • 때문에 속도가 느림
  • 그러나 INDEX를 많이 설정한다고 조회 속도가 빨라지지 않음
    • INDEX는 테이블 형태로 저장하는 것임
    • 즉 인덱스가 많아지면 데이터베이스 메모리를 많이 잡아 먹음
    • 인덱스로 지정된 칼럼 값이 변동되면, 인덱스 테이블이 갱신되므로 느려짐
    • 때문에 쿼리문 자체가 빨라질 수도 있지만, 전체적 데이터베이스 부하가 증가함
  • SELECT는 빠르지만, UPDATE / INSERT / DELETE 속도는 느림
    • UPDATE / DELETE 시 WHERE을 통해 데이터 조회 자체는 빠름
    • 그러나 데이터 변경 / 삭제 자체는 느림

  • 카디널리티 : 카디널리티가 높으면 인덱스 설정에 좋은 칼럼
    • 카디널리티가 높다 == 한 칼럼이 갖고 있는 값의 중복도가 낮음 (대부분 다른 값을 가짐)
    • 인덱스 통해 불필요한 데이터 대부분을 걸러낼 수 있음
  • 선택도: 선택도가 낮으면 인덱스 설정에 좋음
    • 선택도가 높다 == 한 칼럼이 갖고 있는 값 하나로 여러 row가 찾아진다.
  • 조회 활용도: 조회 활용도가 높으면 인데스 설정에 좋은 칼럼
    • WHERE 문의 대상 칼럼으로 많이 활용되는지
  • 수정 빈도: 수정 빈도가 낮으면 인덱스 설정에 좋은 칼럼
    • 인덱스도 테이블
    • 따라서 지정된 칼럼 값이 인덱스 테이블이 새롭게 갱시되어야 함

용어

  • HEAP: 데이터 저장 시 내부적으로 아무런 순서 없이 저장된 데이터 저장 영역
    CREATE INDEX user_idx ON user_table (user_name);
728x90
반응형

+ Recent posts