Mysql
 sql >> база данни >  >> RDS >> Mysql

Ускоряване на преброяването на редове в MySQL

Така че въпросът е

има ли техники за ускоряване на тези видове заявки?

Е, не наистина. Базираната на колони машина за съхранение вероятно би била по-бърза с тези SELECT COUNT(*) заявки, но би била по-малко ефективна за почти всяка друга заявка.

Най-добрият ви залог е да поддържате обобщена таблица чрез тригери. Няма много допълнителни разходи и частта SELECT ще бъде мигновена, независимо колко голяма е масата. Ето малко стандартен код:

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 е защитена

  2. Как да дублирате база данни с помощта на phpMyAdmin

  3. Как работи операторът SOUNDS LIKE в MySQL

  4. mysql PDO как да обвържем LIKE

  5. Как да планирате MySQL заявка?