개발공부(java, springboot)

MySQL - LIMIT Rows, 조회결과 제한 해제하기.

Jr.고래 2024. 6. 25. 21:50

 

발생한 문제 ) 분명히 내가 넣은 데이터는 2000건이 넘는데 조회를 하면 2000건밖에 보이지 않는다

 

수행한 쿼리 : select * from table;

글씨가 깨알같죠?? 자다가도 일어나서 쓰는 익숙한 쿼리라서 이런게 있을지 저도 몰랐습니다

 

위의 깨알같은 글씨의 내용은 이러합니다.  ( 주의깊게 봐야할 부분 빨간글씨 )

21:34:50 SELECT * FROM doWee.hospital LIMIT 0, 2000 2000 row(s) returned

0.0013 sec / 0.0042 sec

 

MySQL WorkBench에서 자동적으로 LIMIT 키워드가 0,2000건을 적용해주고 있습니다

 

(익숙하지 않은 배치 처리 하면서 내가 코드를 잘 못 작성헀나?? 버퍼가 초과된건가? 데이터가 유실된건가? 뭐가문제지? 하면서 몇 시간 고생하면서 얻은 내용은 비밀 ..)

 

 

임시 방편)  한번에 나타내는 행 수 제한을 명시해준다 ( table명 limit 99999; )

 

 

해결 방안) 찾았다 이녀석 ...  체크되어 있는 Limit Rows를 체크해제 합니다

제가 원했던 결과가 나오는것을 확인할 수 있습니다 ! 

 

문제를 해결했지만 궁금증이 생겼습니다

 

왜 Limt Rows는 Default 값일까 ?? 

 

1. 성능 최적화 문제 

지금은 7만건 정도밖에 되지 않지만 엄청난 양의 데이터를 제한 없이 전부다 한번에 가져오려고 한다면 ??

응답시간이 길어지거나 시스템이 멈추는 등 예상치 못한 성능 문제가 발생할 수 있다. 

( 유튜브 같은 곳에서 관리자가 회원목록을 조회하는데 모든 회원정보가 한번에 조회된다면? )

 

2. 안정성

잘못된 쿼리로 대량의 데이터를 한번에 불러오는 실수를 방지할 수 있다.

where절을 빠트리거나 잘못된 조건을 사용할 경우 매우 많은 데이터가 반환될 수 있는데 이러한 경우를 예방해준다. 

 

 

이러한 점을 알고 SQL을 사용하면 앞으로의 개발 생활에도 큰 도움이 될것이다 !