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

Hvordan optimerer man mysql-indekser, så INSERT-operationer sker hurtigt på en stor tabel med hyppige skrivninger og læsninger?

Skrivehandlinger for en enkelt række i en datatabel bør ikke tage 5 sekunder, uanset hvor stort bordet bliver.

Er dit klyngede indeks baseret på tidsstempelfeltet? Hvis ikke, burde det være det, så du ikke skriver ind i midten af ​​dit bord et eller andet sted. Sørg også for, at du bruger InnoDB-tabeller - MyISAM er ikke optimeret til skrivning.

Jeg vil foreslå at skrive i to tabeller:én langtidstabel, én korttidsrapporteringstabel med ringe eller ingen indeksering, som derefter dumpes efter behov.

En anden løsning ville være at bruge memcached eller en in-memory database til live rapporteringsdata, så der ikke er noget hit på produktionsdatabasen.

En tanke mere:præcis hvor "live" skal en af ​​disse rapporter være? Måske hente en ny liste på tidsbestemt basis versus én gang for hver sidevisning ville være tilstrækkelig.



  1. SqlConnection SqlCommand SqlDataReader IDdisposable

  2. Hvordan viser jeg eksekveringstiden for en MySQL-forespørgsel i PHP?

  3. Sådan fungerer SUBSTR()-funktionen i MySQL

  4. 46 Kontrolfiler til SQL Loader