Đây là tình hình:COUNT nhanh hơn kéo các bản ghi và đếm trong mã?
đầu tiên tôi cần phải chạy một truy vấn để biết có bao nhiêu hồ sơ tồn tại.
Ví dụ:
SELECT COUNT(DISTINCT userid) from users;
Thường thì điều này sẽ là tất cả những gì cần thiết. Tuy nhiên, đôi khi (nói 30% thời gian) theo truy vấn đầu tiên, người dùng sẽ muốn chạy truy vấn thứ hai, ghi chi tiết các bản ghi.
Ví dụ:
SELECT * FROM users;
Có bất kỳ lý do gì để chạy SELECT COUNT
ban đầu thay vì chỉ SELECT
? Tức là, làm cho số lượng bản ghi trong SQL nhanh hơn thực tế kéo các bản ghi trở lại? Hoặc là nó làm cơ bản cùng một công việc một trong hai cách và vì vậy tôi nên tránh làm hai truy vấn?
Nói cách khác, tốt hơn là luôn luôn kéo các bản ghi trong truy vấn đầu tiên (không sử dụng COUNT
), sau đó đếm các bản ghi trong mã (Java). Nếu người dùng muốn chạy truy vấn thứ hai, thì tuyệt vời, tôi đã có dữ liệu. Nếu không, sau đó chỉ cần đổ nó.
Thực tiễn tốt nhất ở đây là gì?
Nhanh hơn nhiều khi chạy số đếm trong SQL. Ngoài bất cứ điều gì khác, bạn không cần phải gửi toàn bộ bảng trên dây, chỉ cần một giá trị số nguyên! – Blorgbeard
@Blorgbeard Phải, tôi hiểu bằng cách sử dụng COUNT sẽ có nghĩa là ít hơn nhiều dữ liệu cần phải được chuyển giao, nhưng có bao nhiêu chi phí tổng thể để thực hiện truy vấn là chuyển đổi so với những gì máy chủ SQL đang làm? (Tôi biết rằng sẽ phụ thuộc vào nhiều yếu tố. Chỉ cần tự hỏi thực hành tốt nhất là gì.) – whiskeyspider
1) Có. 2) Tự mình thử xem. –