서론
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;