질의가 많은것과 데이터가 많은것의 성능차이 0 4 524

by 기훈 [MySQL] [2021.08.26 01:32:00]


복잡한 쿼리로 질의한후 데이터 조합과정에서

루프 안에서 시퀀스 넘버로 질의를 하게 되었습니다.

한번에 x개의 row를 가져오는것이 무조건 옳지만

x번의 루프안에서 1개의 row를 가져오는것이 극도로 피해야할 정도로 나쁜것인지요?

by 마농 [2021.08.26 08:15:11]

그때 그때 상황에 따라 다릅니다.
일반적으로는 루프 돌리는 것보다는 한번에 처리하는게 빠릅니다.
"무조건" 이란 단어와 "극도로" 라는 단어를 사용하셨네요.
너무 한쪽으로 치우쳐서 결론을 내려 하거나 공식화 시키려 하면 안됩니다.


by 기훈 [2021.08.26 10:00:22]

답변 감사합니다.

질문은. 비교를 위해 과장한 측면이 있습니다.

그때 그때 다르다고 하셨는데 혹시 그 상황에 대해 조금더 들어볼수 있을까요?


by 마농 [2021.08.26 10:07:07]

글쎄요? 간략하게 댓글로 정리할 수 있는 게 아닙니다.
책을 보셔야 할 것 같은데요.
구루비 좌측 메뉴에 "Database 북카페" 참고하세요.


by 축구쟁이 [2021.08.27 14:51:38]

고려해야 할 사항들이 많아서 무조건 좋다 좋지 않다라고 판단할 수는 없습니다.

말씀하신 "x번의 루프안에서 1개의 row를 가져오는것이 극도로 피해야할 정도로 나쁜것인지요?" 에 대해서는 

OLTP환경인지, 루프를 몇번 돌게 되는지를 가장 먼저 확인해보는 것이 좋습니다. 

예를 들면 1번의 질의당 루프를 1000번 실행한다고 가정했을때, 질의가 100번 실행되면 루프는 100,000번 실행됩니다.

 

결국엔 질의의 목적에 따라 가장 최적의 방법을 선택해야 하겠습니다.

질의의 목적이라 함은 빠른 처리, 적은 비용, 안정성 등 여러가지가 있으며 복합적으로 고려해서 선택하게 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입