Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tối ưu hóa truy vấn số lượng mysql

Nếu mysql phải đếm 11 triệu hàng, thực sự không có nhiều cách để tăng tốc độ đếm đơn giản. Ít nhất là không để nó đạt đến tốc độ dưới 1 giây. Bạn nên suy nghĩ lại về cách bạn đếm. Một vài ý tưởng:

  1. Thêm trường tăng tự động vào bảng. Có vẻ như bạn sẽ không xóa khỏi bảng, vì vậy bạn có thể sử dụng phép toán đơn giản để tìm số bản ghi. Chọn số tăng tự động tối thiểu cho ngày đầu tiên trước đó và số tối đa cho ngày sau đó và trừ một số cho ngày kia để có được số lượng bản ghi. Ví dụ:

    SELECT min(incr_id) min_id FROM record_updates WHERE date_updated BETWEEN '2009-10-11 15:33:22' AND '2009-10-12 23:59:59';
    SELECT max(incr_id) max_id FROM record_updates WHERE date_updated > DATE_SUB(NOW(), INTERVAL 2 DAY);`
    
  2. Tạo một bảng khác tóm tắt số lượng bản ghi cho mỗi ngày. Sau đó, bạn có thể truy vấn bảng đó để biết tổng số bản ghi. Sẽ chỉ có 365 bản ghi cho mỗi năm. Nếu bạn cần giảm thời gian chi tiết hơn, hãy truy vấn bảng tóm tắt cho các ngày đầy đủ và bảng hiện tại chỉ để biết số lượng bản ghi cho ngày bắt đầu và ngày kết thúc. Sau đó, thêm tất cả chúng lại với nhau.

Nếu dữ liệu không thay đổi, có vẻ như không phải vậy, thì các bảng tóm tắt sẽ dễ bảo trì và cập nhật. Chúng sẽ tăng tốc đáng kể.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL RAND () Hàm - Tạo một số ngẫu nhiên trong MySQL

  2. Ví dụ về UTC_TIME - MySQL

  3. Làm thế nào để chọn tất cả các cột trong sql ngoại trừ một cột?

  4. Tôi nên xử lý --secure-file-priv trong MySQL như thế nào?

  5. MySQL Delete với Group By