DB index 설정

최민수·2023년 2월 24일
0

CS 전공지식

목록 보기
8/36

movie

아래의 설명은 모두 MYSQL 기준

DB 테이블에 index를 거는 방법

  • 이미 만들어진 테이블의 경우
    • CREATE INDEX index_name ON table_name (column_name)
    • CREATE UNIQUE INDEX index_name ON table_name (column_name)
  • 새로 테이블을 만들면서 index 설정하는 경우
    • CREATE TABLE player (
      	id INT PRIMARY_KEY, // RDBMS에서는 pk는 자동으로 index로 설정
          name VARCHAR(20) NOT NULL,
          team_id INT,
          backnumber INT,
          INDEX player_name_idx (name), // 단일 컬럼 index 설정
          UNIQUE INDEX teamId_and_backnumber_idx (team_id, backnumber) // 복합 컬럼 index 설정
      );

SQL 쿼리 수행 시 어떤 index를 사용하는지 알아보는 방법

  • EXPLAIN SELECT * FROM player WHERE backnumber = 7;
    • 이런 식으로 EXPLAIN 키워드를 적어주면 실제로 사용한 index key를 볼 수 있다.
  • 일반적으로 optimizer가 알아서 필요한 index를 골라서 사용하지만, 수동으로 설정할 수도 있다.
    • 권장
      SELECT * FROM player USE INDEX (backnumber_idx) WHERE ...
    • 강제
      SELECT * FROM player FORCE INDEX (backnumber_idx) WHERE ...
    • 제외
      SELECT * FROM player IGNORE INDEX (backnumber_idx) WHERE ...
profile
CS, 개발 공부기록 🌱

0개의 댓글