mysql index (2)

greenTea·2023년 5월 22일
0

sql에서 index를 걸면 select가 빨라진 것을 확인할 수 있었습니다.

그럼 아래와 같은 쿼리가 있을 경우 무엇이 더 좋은지 보면
현재 loginId에 index가 걸려있는 상황입니다.

sql

  1. user%로
select * from member where loginId like 'user%';
  1. %user로
select * from member where loginId like '%user';

결과

결과

시간을 보면 위 쿼리가 훨씬 빠른 것을 볼 수 있습니다.
그 이유는 like의 경우 앞에 %가 붙어 있으면 어느정도 인덱스를 활용해서 일치하는 부분까지 걸러내서 가져올 수 있습니다(range 방식을 이용). 그러나 아래 %like의 경우 시작 string을 알 수 없어 어쩔수 없이 풀 스캔으로 직접 비교하며 값을 가져와야 하기에 실행속도에 차이가 생기게 된것입니다.

실제 실행 계획


profile
greenTea입니다.

0개의 댓글