Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zoptymalizować wydajność COUNT(*) w InnoDB za pomocą index

Od wersji MySQL 5.1.6 możesz użyć Harmonogramu zdarzeń i regularnie wstawiaj licznik do tabeli statystyk.

Najpierw utwórz tabelę do przechowywania licznika:

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

Następnie utwórz wydarzenie, aby zaktualizować tabelę:

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);

Nie jest idealny, ale oferuje samodzielne rozwiązanie (bez cronjob lub kolejki), które można łatwo dostosować do uruchamiania tak często, jak wymagana jest świeżość liczenia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ładowanie klasy com.mysql.jdbc.Driver ... jest przestarzałym komunikatem

  2. Błąd:wybierz polecenie odrzucone użytkownikowi „<userid>”@„<adres-ip> ” dla tabeli „<nazwa-tabeli>”

  3. Znajdowanie zduplikowanych wartości w MySQL

  4. WYBIERANIE z wieloma warunkami WHERE w tej samej kolumnie

  5. Formatowanie wiersza poleceń MySQL za pomocą UTF8