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

Cách tối ưu hóa hiệu suất COUNT (*) trên InnoDB bằng cách sử dụng chỉ mục

Kể từ MySQL 5.1.6, bạn có thể sử dụng Trình lập lịch sự kiện và chèn số lượng vào bảng thống kê thường xuyên.

Đầu tiên, hãy tạo một bảng để chứa số lượng:

CREATE TABLE stats (
`key` varchar(50) NOT NULL PRIMARY KEY,
`value` varchar(100) NOT NULL);

Sau đó, tạo sự kiện để cập nhật bảng:

CREATE EVENT update_stats
ON SCHEDULE
  EVERY 5 MINUTE
DO
  INSERT INTO stats (`key`, `value`)
  VALUES ('data_count', (select count(id) from data))
  ON DUPLICATE KEY UPDATE value=VALUES(value);

Nó không hoàn hảo nhưng nó cung cấp một giải pháp độc lập (không có cronjob hoặc hàng đợi) có thể dễ dàng được điều chỉnh để chạy thường xuyên khi số lượng được cập nhật mới nhất.



  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 DataSource trên Visual Studio 2012

  2. DATABASE () - Lấy tên cơ sở dữ liệu hiện tại trong MySQL

  3. Truy vấn nhiều cơ sở dữ liệu cùng một lúc

  4. Tham gia cùng chúng tôi tại Amsterdam để có buổi gặp mặt với OptimaData &VidaXL

  5. Cách tính doanh số trung bình mỗi tuần trong MySQL