inflearn logo
강의

講義

知識共有

非専門家でも理解できるMySQL性能最適化入門/実践(SQLチューニング編)

[演習] 一度に大量のデータを取得するSQL文のチューニング

한 번에 너무 많은 데이터를 조회하는 SQL문 튜닝하기 질문입니다

258

cdy02666959

投稿した質問数 8

0

만약 응답해야 되는 데이터는 "많은" 데이터인데
데이터베이스에서 조회할 때는 LIMIT, WHERE로 나눠서 가져오고 애플리케이션 로직에서 합쳐서 응답하는게 나은가요?

아니면 네트워크를 여러번 타는 것 보다는 이런 경우에는 한번에 가져오는게 더 나을까요?

상황에 따라 다르겠지만,, 참고할만한 지침같은게 있을까 싶어서 여쭤봅니다!

sql mysql dbms/rdbms query-tuning

回答 3

0

cdy02666959

답변 감사합니다!

혹시 그 이유는 뭘까요? 네트워크를 덜 거치는게 더 나아서 그런걸까요?

0

jscode

데이터를 주고 받기 위해서는 가장 먼저 Connection이라는 작업을 먼저 하게 됩니다.

그런데 데이터를 여러번 잘게 쪼개서 통신을 하게 되면

통신을 할 때마다 Connection 작업을 반복하게 됩니다.

이러한 이유 때문에 비효율적으로 작동하게 됩니다:D

0

jscode

안녕하세요 또또록님! 질문 잘 해주셨습니다:D

 

만약 페이지네이션으로 데이터를 나눠서 응답하면 안 되고,

한 번에 1000개의 데이터를 응답해야 하는 경우라고 가정해보겠습니다.

 

그런 경우에는 나눠서 데이터를 조회하는 것보다

데이터베이스에서 많은 데이터를 한 번에 조회해서 응답하는 게 성능에는 좋습니다!

하지만 한 번에 많은 데이터를 응답하기 때문에 기본적인 성능 저하는 있을 수 있습니다..!!

 

이 외로 궁금한 점 생기시면 또 질문 남겨주세요~~

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 또또록님께서 데이터 조회에 관한 성능 최적화에 대해 질문해 주셨군요. 많은 양의 데이터를 처리할 때는 네트워크와 데이터베이스 부하를 잘 관리하는 것이 중요합니다.

  1. LIMIT와 WHERE 사용: 큰 데이터를 처리할 때는 LIMIT와 WHERE 절을 사용하여 데이터를 분할하여 가져오는 방법도 고려할 수 있습니다. 이는 데이터베이스에 가하는 부담을 줄이는 데 도움이 될 수 있습니다. 그러나 데이터를 여러 번 가져올 경우 네트워크 왕복으로 인한 지연이 생길 수 있습니다.

  2. 한 번에 가져오기: 필요에 따라 데이터를 한 번에 가져오는 것도 방법일 수 있는데요, 특히 여러 번의 네트워크 호출이 성능 병목이 될 수 있는 상황에서는 한 번에 모두 가져와서 애플리케이션에서 처리하는 것이 효율적일 수 있습니다. 다만, 이 경우 메모리 소모를 고려해야 합니다.

  3. 참고 지침: 데이터 양과 네트워크 환경, 애플리케이션의 처리 능력, 데이터베이스의 성능 등 여러 요소를 고려해야 최적의 방법을 선택할 수 있습니다. 예를 들어, 데이터가 사용자 임시 저장소에 저장될 수 있거나, 데이터 변화가 거의 없는 경우 대량의 데이터를 한 번에 가져오는 것이 나을 수 있습니다.

관련하여 참고할 만한 기존의 질문 및 답변을 추천드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.

0

34

2

쿼리 결과 그리드에서 TYPE, POSSIBLE_KEYS 다릅니다

0

80

3

강의 내용을 블로그에 정리해도 괜찮을까요?

1

120

2

여러 테이블 조인시 where 절이 필요한가? 에 대해 질문있습니다.

0

143

2

풀 인덱스 스캔 질문있습니다.

0

119

2

멀티컬럼인덱스 질문있습니다.

0

121

2

쿼리 튜닝 관련 질문 (limit)

0

119

1

페이지기반 페이지네이션 쿼리를 최적화하고 싶습니다.

0

168

2

측정 시간 차이

0

200

2

[실습] 인덱스 직접 설정해보기 / 성능 측정해보기 강의에서요.

0

195

1

커버링 인덱스(Covering Index)강의에서 질문이있습니다.

0

183

2

ORDER BY 튜닝관련 문의

0

200

2

강의 질문 있습니다

0

118

2

인덱스 많은 테이블에서 데이터 많아질 수록 insert 속도 증가

0

442

3

MariaDB 사용 시 EXPLAIN ANALYZE 이용 불가 문의

1

590

2

SQL 튜닝에 대한 사례나 Best Practice 등을 모은 자료를 알려주실 수 있나요?

0

320

2

혹시 심화 수업은 계획이 없으신가요..?

0

295

1

jpa쿼리튜닝 팁이 궁금합니다.!

0

448

1

특정 부서에서 최대 연봉을 가진 사용자 조회 sql 쿼리 질문

4

246

1

created_at 에 index 거는것과 지속적인 데이터 증가

0

424

2

WHERE A OR B 에서 인덱스 걸기

0

377

2

질문이있습니다.

1

311

1

테이블에 기본키가 없을때

0

381

1

질문있어요!!!

1

214

1