혼자 공부하는 SQL 15강

랄라콥스·2025년 2월 24일

혼자공부하는SQL

목록 보기
7/12

INDEX

데이터의 양이 매우 많기 떄문에 빠르게 찾기 위해서는 반드시 필요함!

필요없는 index를 만드는 것은 오히려 디비의 차지하는 공간만 늘어나 느려질 수 있다.

INDEX의 장단점

장점

  • SELECT문으로 검색하는 속도가 매우 빨라짐
    -> 전체 시스템의 성능이 향상됨

단점

  • 공간 차지 -> 디비 안에 추가적인 공간이 필요함
  • 초기 인덱스 생성시 시간이 오래 걸림
  • SELECT보다 INSERT, UPDATE, DELETE가 자주 일어나면 성능이 나빠짐

인덱스의 종류

  1. 클러스터형 인덱스
    like 영어 사전

자체가 인덱스

  1. 보조 인덱스
    인덱스가 따로 있는 것

1. 자동으로 생성되는 인덱스

PK는 자동으로 클러스터형 인덱스가 만들어짐
-> 순서대로 정렬됨

CASE 1

CREATE TABLE table1  (
    col1  INT  PRIMARY KEY,
    col2  INT,
    col3  INT
);


Non_unique = 유니크 하지 않다
0 = false
Column_name -> index 생성 열 이름

CASE 2

CREATE TABLE table2  (
    col1  INT  PRIMARY KEY,
    col2  INT  UNIQUE,
    col3  INT  UNIQUE
);


Key_name에 col2, col3 => 보조 인덱스

따라서
PK로 설정시 클러스터 인덱스가, UNIQUE로 설정시 보조 인덱스가 자동 생성된다!
=> 클러스터 인덱스는 테이블당 1개, 보조 인덱스는 여러개 가능

2. 자동으로 정렬되는 인덱스


인덱스 없이 생성
데이터 입력 순으로 정렬

-멤버 아이디를 PK로 설정 ->

영어 단어 순으로 정렬됨!(PK값에 따라 정렬 순 달라짐)

3. 정렬되지 않는 보조 인덱스

보조 인덱스 -> 내용은 그대로 => 찾아볼 수 있는 인덱스를 따로 추가하는 것

=> UNIQUE키만 주어졌을 때는 정렬되지 않는다.
*여러개 지정 가능

-> 새로운 데이터 insert를 하면, 그냥 맨 뒤에 추가된다
profile
일단 책을 피자

0개의 댓글