sql >> Database teknologi >  >> RDS >> Mysql

Sådan optimerer du COUNT(*) ydeevne på InnoDB ved at bruge indeks

Fra og med MySQL 5.1.6 kan du bruge Event Scheduler og indsæt optællingen i en statistiktabel regelmæssigt.

Opret først en tabel til at holde optællingen:

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

Opret derefter en begivenhed for at opdatere tabellen:

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

Det er ikke perfekt, men det tilbyder en selvstændig løsning (ingen cronjob eller kø), der let kan skræddersyes til at køre lige så ofte som den nødvendige friskhed af optællingen.



  1. PostgreSQL fejl ved forsøg på at oprette en udvidelse

  2. Aktiver SQL Server Agent via SSMS

  3. Installation af PostgreSQL Extension til alle skemaer

  4. SQL Server Update Trigger, Hent kun ændrede felter