인덱스 있고없고 성능 차이

테이블에 100만개의 데이터가 존재한다 가정하고 아래의 쿼리 실행

SELECT * FROM customer
WHERE first_name = 'jeongho';

인덱스가 걸려있지 않다면

위 값을 찾기 위해 **100만개의 Row(행)를 모두 확인하는 풀 스캔**을 하게 된다. → 시간복잡도 O(N)

인덱스가 걸려있다면

B-tree 기반의 인덱스라면 O(N)인 풀 스캔과 달리 **O(log N)의 시간복잡도**로 값을 찾을 수 있다.

인덱스를 쓰는 이유


인덱스 만드는법

CREATE INDEX player_name_idx ON player (name);

// 위처럼 index를 걸게 되면 아래와 같은 쿼리를 실행할 때 해당 index를 타서 실행한다.

SELECT * FROM player
WHERE name = 'Sonny';

위처럼 테이블을 만들면서 index를 만들 수도 있다.

위처럼 테이블을 만들면서 index를 만들 수도 있다.

특정 테이블의 인덱스 정보 확인하기

SHOW INDEX FROM player;