Server/DB

DB) LIMIT 1 & index

Juzdalua 2025. 4. 23. 11:51

sql에서 limit1을 사용함에 있어 오해가 있었다.

데이터를 select할 때 limit1을 작성하면, 전체 데이터를 긁어온 후 1개를 반환하는 것으로 알고있었다.

실제 1억개가 넘는 데이터에서 경험했기 때문이다.

 

그런데 아래 영상을 보던 중, 쿼리 성능에 대한 이야기를 해주시는데 limit1을 사용해보라는 이야기가 있었다.

그래서 당연히 내가 잘못된 경험을 했고 잘못 알고있을 거라 확신한 후 다시 찾아보게 되었다.

 

결론은 조건절에 들어가는 컬럼이 인덱싱이 잡혀있다면 limit 만큼 조회하고 쿼리는 종료된다.

내 과거 경험에서는 인덱스를 설정하지 않았기 때문에 모두 검색 후, limiit에 해당하는 결과를 출력하느라 속도가 느렸던 것이다.

 

인덱스 설정 O 인덱스 설정 X
만족하는 조건 검색 하자마자 종료 전체 스캔 후, limit만큼 잘라서 출력

 

 

참고)

https://www.youtube.com/watch?v=zMAX7g6rO_Y

5분 50초경 limit1 추천