테이블에 100만개의 데이터가 존재한다 가정하고 아래의 쿼리 실행
SELECT * FROM customer
WHERE first_name = 'jeongho';
위 값을 찾기 위해 **100만개의 Row(행)를 모두 확인하는 풀 스캔
**을 하게 된다. → 시간복잡도 O(N)
B-tree 기반의 인덱스라면 O(N)인 풀 스캔과 달리 **O(log N)의 시간복잡도
**로 값을 찾을 수 있다.
특정 **조건에 만족하는 튜플들을 더욱 빠르게 조회**
하기 위해
Order by, Group by를 빠르게 실행하기 위해
<aside> 💡 order by, group by 빠른 이유 → index 테이블은 항상 정렬이 되어있기 때문에 group by 빠르려면 → group by는 동일한 값을 그룹으로 묶기 때문에 정렬이 되면 그룹핑에서 성능에 이점이 있다.
</aside>
CREATE INDEX player_name_idx ON player (name);
// 위처럼 index를 걸게 되면 아래와 같은 쿼리를 실행할 때 해당 index를 타서 실행한다.
SELECT * FROM player
WHERE name = 'Sonny';
위처럼 테이블을 만들면서 index를 만들 수도 있다.
SHOW INDEX FROM player;