강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của cdy02666959
cdy02666959

câu hỏi đã được viết

MySQL tối ưu hóa hiệu suất cho người không chuyên - Nhập môn/Thực chiến (Phần SQL Tuning)

[Thực hành] Tinh chỉnh câu lệnh SQL truy vấn quá nhiều dữ liệu cùng lúc

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

Viết

·

229

0

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

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

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

sqlmysqldbms/rdbmsquery-tuning

Câu trả lời 3

0

cdy02666959님의 프로필 이미지
cdy02666959
Người đặt câu hỏi

답변 감사합니다!

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

jscode님의 프로필 이미지
jscode
Người chia sẻ kiến thức

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

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

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

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

0

jscode님의 프로필 이미지
jscode
Người chia sẻ kiến thức

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

 

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

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

 

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

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

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

 

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

0

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

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

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

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

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

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

Hình ảnh hồ sơ của cdy02666959
cdy02666959

câu hỏi đã được viết

Đặt câu hỏi