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

Tăng tốc độ đếm hàng trong MySQL

Vì vậy, câu hỏi là

có bất kỳ kỹ thuật nào để tăng tốc các loại truy vấn này không?

Chà, không hẳn vậy. Công cụ lưu trữ dựa trên cột có thể sẽ nhanh hơn với các truy vấn CHỌN COUNT (*) đó nhưng nó sẽ kém hiệu quả hơn đối với bất kỳ truy vấn nào khác.

Đặt cược tốt nhất của bạn là duy trì một bảng tóm tắt thông qua các trình kích hoạt. Nó không có nhiều chi phí và phần CHỌN sẽ ngay lập tức bất kể bảng lớn đến mức nào. Dưới đây là một số mã soạn sẵn:

DELIMITER //

CREATE TRIGGER ai_books AFTER INSERT ON books
FOR EACH ROW UPDATE books_cnt SET total = total + 1 WHERE status = NEW.status
//
CREATE TRIGGER ad_books AFTER DELETE ON books
FOR EACH ROW UPDATE books_cnt SET total = total - 1 WHERE status = OLD.status;
//
CREATE TRIGGER au_books AFTER UPDATE ON books
FOR EACH ROW
BEGIN
    IF (OLD.status <> NEW.status)
    THEN
        UPDATE books_cnt SET total = total + IF(status = NEW.status, 1, -1) WHERE status IN (OLD.status, NEW.status);
    END IF;
END
//


  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 localhost! =127.0.0.1?

  2. Có gì mới với MySQL Replication trong MySQL 8.0

  3. Làm cách nào để thoát khỏi các từ dành riêng được sử dụng làm tên cột? MySQL / Tạo bảng

  4. Làm cách nào để lấy kích thước của các bảng trong cơ sở dữ liệu MySQL?

  5. Cách chỉnh sửa tệp mySQL my.cnf