sql >> Database >  >> RDS >> Mysql

Hoe mysql-indexen optimaliseren zodat INSERT-bewerkingen snel plaatsvinden op een grote tabel met frequente schrijf- en leesbewerkingen?

Schrijfbewerkingen voor een enkele rij in een gegevenstabel mogen niet duurt 5 seconden, ongeacht hoe groot de tafel wordt.

Is uw geclusterde index gebaseerd op het tijdstempelveld? Zo niet, dan zou het zo moeten zijn, dus je schrijft niet ergens in het midden van je tafel. Zorg er ook voor dat u InnoDB-tabellen gebruikt - MyISAM is niet geoptimaliseerd voor schrijven.

Ik stel voor om in twee te schrijven tabellen:één langetermijntabel, één kortetermijnrapportagetabel met weinig of geen indexering, die vervolgens indien nodig wordt gedumpt.

Een andere oplossing zou zijn om memcached of een in-memory database te gebruiken voor de live rapportagegegevens, zodat er geen hit is in de productiedatabase.

Nog een gedachte:hoe "live" moet een van deze rapporten precies zijn? Misschien een nieuwe lijst ophalen op een getimede basis versus een keer voor elke paginaweergave zou voldoende zijn.



  1. PHP &PDO:één verbinding versus meer dan één verbindingen

  2. Mysql-script voor het maken van gebruikers

  3. hoe te controleren of een string er willekeurig uitziet, of door mensen gegenereerd en uitspreekbaar is?

  4. Fatale fout tijdens het uitvoeren van een opdracht MySQL VB