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

Làm cách nào để tăng tốc truy vấn MySQL với mệnh đề WHERE trên hai cột?

Bạn cần có một chỉ mục trên cả hai trường

ALTER TABLE alert_hit ADD INDEX `IDX-alert_id-timestamp` (`alert_id`, `timestamp`);

Ngoài ra, MySQL sẽ sử dụng chỉ mục nhiều cột cho đến trường đầu tiên có điều kiện phạm vi trong mệnh đề WHERE, vì vậy trong trường hợp này, thứ tự quan trọng và timestamp phải ở cuối cùng trong chỉ mục.

Theo đề xuất của @ spencer7593, hãy chọn COUNT(1) thay vì count(id) cũng có thể tốt hơn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lấy dấu thời gian Unix trong MySQL từ thời gian UTC?

  2. Làm cách nào để chỉ định ràng buộc duy nhất cho nhiều cột trong MySQL?

  3. MySQL 1292 Giá trị ngày giờ không chính xác

  4. Giải đấu bóng đá phức tạp Đặt hàng động trong MySQL?

  5. Làm cách nào để hạn chế người dùng MySQL trong một bảng cụ thể