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

반응형

서론

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;
반응형