Nó phụ thuộc vào nhiều yếu tố - nhưng quan trọng nhất:
- độ phức tạp của các phép tính (thích thực hiện các thao tác xử lý phức tạp trên máy chủ ứng dụng, vì quy mô đó ra ; chứ không phải là máy chủ db, mở rộng quy mô tăng lên )
- khối lượng dữ liệu (nếu bạn cần truy cập / tổng hợp nhiều dữ liệu, làm điều đó tại máy chủ db sẽ tiết kiệm băng thông và ổ đĩa nếu việc tổng hợp có thể được thực hiện bên trong các chỉ mục)
- sự tiện lợi (sql không phải là ngôn ngữ tốt nhất cho công việc phức tạp - đặc biệt là không tốt cho công việc thủ tục, nhưng rất tốt cho công việc dựa trên bộ; tuy nhiên, xử lý lỗi tệ hại)
Như mọi khi, nếu bạn làm đưa dữ liệu trở lại máy chủ ứng dụng, giảm thiểu các cột và hàng sẽ có lợi cho bạn. Đảm bảo rằng truy vấn được điều chỉnh và lập chỉ mục thích hợp sẽ giúp ích cho cả hai trường hợp.
Ghi chú lại của bạn:
và sau đó lặp lại các bản ghi
Vòng lặp thông qua các bản ghi hầu như luôn luôn là điều sai lầm khi làm trong sql - ưu tiên viết một hoạt động dựa trên tập hợp.
Theo quy tắc chung , Tôi muốn giữ công việc của cơ sở dữ liệu ở mức tối thiểu "lưu trữ dữ liệu này, tìm nạp dữ liệu này" - tuy nhiên, luôn có các ví dụ về tình huống trong đó một truy vấn thanh lịch tại máy chủ có thể tiết kiệm nhiều băng thông.
Ngoài ra, hãy xem xét:nếu điều này là tốn kém về mặt tính toán, nó có thể được lưu vào bộ nhớ cache ở đâu đó không?
Nếu bạn muốn một chính xác "cái nào tốt hơn"; viết mã theo cả hai cách và so sánh nó (lưu ý rằng bản nháp đầu tiên của một trong hai có khả năng không được điều chỉnh 100%). Nhưng yếu tố trong cách sử dụng điển hình:nếu, trong thực tế, nó được gọi 5 lần (riêng biệt) cùng một lúc, thì hãy mô phỏng rằng:đừng so sánh chỉ một "1 trong số này với 1 trong số đó".