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

Как да оптимизирате производителността на COUNT(*) на InnoDB чрез използване на индекс

От MySQL 5.1.6 можете да използвате планировчик на събития и редовно вмъквайте броя в таблица със статистически данни.

Първо създайте таблица, която да поддържа броя:

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

След това създайте събитие, за да актуализирате таблицата:

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

Не е перфектен, но предлага самостоятелно решение (без cronjob или опашка), което може лесно да бъде настроено да се изпълнява толкова често, колкото е необходима свежест на броенето.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Прехвърляне от VARCHAR към INT - MySQL

  2. SQL:Повторете ред с резултати няколко пъти и номерирайте редовете

  3. Решаване на повреда на комуникационната връзка с JDBC и MySQL

  4. Използване на Oracle JDeveloper с MySQL Database Service на Oracle Cloud Platform, част 3

  5. Как мога да използвам mySQL replace() за заместване на низове в множество записи?