MySQL - 6.1 인덱스 - 인덱스 개념을 파악하자

govlKH·2023년 6월 24일
0

SQL

목록 보기
10/17

6.1 인덱스 개념을 파악하자

인덱스의 개념

책의 제일 뒤에 수록되어 있는 '찾아보기'를 열어서 ABC 혹은 가나다로 정렬되어 있는 정보를 보고 쉽게 찾아간다. 또한 이를 통해 적혀 있는 페이지 번호로 이동하여 원하는 정보로 이동할 수 있다.

++ 인덱스가 필수는 아니지만, 실무에서는 엄청난 양의 데이터로 인해 반드시 사용한다고 생각해야 한다.

BUT 비타민을 너무 많이 먹으면 몸이 안 좋아지는 것 처럼 인덱스의 문제점도 있다.
실무에서 운영할 때 필요 없는 인덱스를 만드는 바람에 데이터베이스가 차지하는 공간만 더 늘어나고, 인덱스를 이용해서 데이터를 찾는 것이 전체 테이블을 찾아보는 것 보다 느려지는 경우도 있다.

  • 인덱스의 장점과 단점

장점 : SELECT문으로 검색하는 속도가 매우 빨라진다. 따라서 컴퓨터의 부담이 줄어들어 결국 전체 시스템의 성능이 향상된다.

단점 : 인덱스도 공간을 차지해서 데이터베이스 안에 추가적인 공간이 필요하다. 또한 처음에 인덱스를 만드는 데 시간이 오래 걸린다.

인데스의 종류

클러스터형 인덱스 : 영어사전, 국어사전 - 책 자체가 인덱스
보조 인덱스 : 일반 책 뒤의 찾아보기

  • 자동으로 생성되는 인덱스
    PRIMARY KEY 같은 경우에는 자동으로 클러스터형 인덱스가 생성이 된다.
    그렇기 때문에 자동으로 ABC순으로 정렬이 되는 것이다.

아래를 통해 col1은 PRIMARY KEY로 클러스터형 인덱스 생성,
col2와 col3는 UNIQUE로 보조 인덱스로 만들 수 있다.(보조 인덱스는 여러 개 만들 수 있다.)

  • 1) 자동으로 정렬되는 클러스터형 인덱스
    PRIMARY KEY로 지정함을 통해 영어사전과 같이 알파벳 순으로 정렬할 수 있다.
    그렇기에 한 테이블 당 하나씩만 지정가능
* PRIMARY KEY 바꾸기
ALTER TABLE member DROP PRIMARY KEY ; -- 기본 키 제거
ALTER TABLE member 
    ADD CONSTRAINT 
    PRIMARY KEY(mem_name);
SELECT * FROM member;
  • 2) 정렬되지 않는 보조 인덱스
    책의 내용은 그대로 유지되면서, 책 뒤에 찾아보기가 추가된 것
* UNIQUE 키는 여러개 지정 가능
ALTER TABLE member
     ADD CONSTRAINT 
     UNIQUE (mem_id);
SELECT * FROM member;

ALTER TABLE member
     ADD CONSTRAINT 
     UNIQUE (mem_name);
SELECT * FROM member;

profile
수학과 대학원생. 한 걸음씩 꾸준히

0개의 댓글