Database/MySQL

MySQL - SELECT 조회 결과 1000행 제한 해제하기 (LIMIT ROWS 0,1000)

luvris2 2023. 11. 20. 13:11
반응형

서론

MySQL에서 SELECT의 조회 결과가 1000개가 출력된다.

문제는 결과의 행이 1000개 일리 없는 데이터 결과 셋이 계속 1000개로 고정되어서 결과가 조회된다는 것이다.

select count(*) from t1;

 

심지어 확인해보니 계속 LIMIT 키워드가 적용되어 있다.

select * from t1;

 

나는 제한을 걸어준 적이 없는 LIMIT 1000으로 인해 결과 셋의 행이 천 개로 제한되는 것이다.

이 LIMIT를 없애려면 어떻게 해야할까?


방법1 : 직접 LIMIT 제한 범위를 걸어주기

직접적인 해결 방법은 아니지만,

쿼리 자체가 'LIMIT 1000'으로 고정되기 때문에 쿼리에 LIMIT를 넣어 직접적으로 리미트 제한을 늘려준다.

다만 이런 방식으로도 조회할 수 있다는 방법 중 하나를 제시한 것이며, 권장하는 방식은 아니니 참고만 해두자.

  • 아래와 같이 LIMIT 키워드를 쿼리 내에 직접 명시하여 범위를 제공해주자
select * from t1 LIMIT 9999999;


방법2 : Workbench 설정의 Limit Rows 옵션 해제하기

MySQL에서의 워크벤치는 SELECT 쿼리 조회 결과를 자체적으로 행을 제한해서 보여주는 옵션이 있다.

이게 기본 값 1000행으로 되어 있는데, 이 옵션을 변경해주거나 해제하면 된다.

  • (워크벤치 메뉴탭에서) Edit - Preferences

 

  • SQL Editor - SQL Execution 메뉴 선택
  • SELECT Query Results 에서의 'Limit Rows' 옵션 해제
    • 혹은 원하는 출력 제한 행 수 지정

 

  • Limit Rows의 옵션을 해제해보자

 

  • 결과 조회 확인
select * from t1;


Limit Rows 옵션의 장점과 단점

데이터 확인을 위해 Limit Rows를 해제하는 방법의 장단점은 분명하게 존재한다.

장점으로는 테이블에 속해 있는 데이터의 수를 정확하게 확인할 수 있다는 것이고,

단점으로는 무분별한 전체 조회로 데이터베이스의 과부하에 영향을 미칠 수 있다는 것이다.

결론적으로는 쿼리를 작성하고 실행하는 사람이 상황에 맞게 잘 사용해야 한다는 것이 최종 요지이지만,

귀찮을 때는 쿼리를 대충 확인 용도로만 작성 할 때가 많으므로,

가능한 쿼리 작성 시 데이터베이스의 성능에 영향이 덜 끼치는 방향으로 작성할 수 있도록 하는 습관을 들이는 것이 좋다.

 

  • 예시1) 테이블 구조 및 데이터 확인 용도
SELECT * FROM t1 LIMIT 5;

 

  • 예시2) 조건에 맞는 특정 데이터 확인 용도
SELECT Col1 FROM t1
WHERE -- [조건 입력]
LIMIT 5;
반응형