Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment optimiser les index mysql pour que les opérations INSERT se produisent rapidement sur une grande table avec des écritures et des lectures fréquentes ?

Les opérations d'écriture pour une seule ligne dans une table de données ne doivent pas prendre 5 secondes, quelle que soit la taille de la table.

Votre index clusterisé est-il basé sur le champ d'horodatage ? Si ce n'est pas le cas, cela devrait être le cas, de sorte que vous n'écrivez pas quelque part au milieu de votre table. Assurez-vous également que vous utilisez des tables InnoDB - MyISAM n'est pas optimisé pour les écritures.

Je proposerais d'écrire en deux tables :une table à long terme, une table de rapport à court terme avec peu ou pas d'indexation, qui est ensuite vidé au besoin.

Une autre solution consisterait à utiliser memcached ou une base de données en mémoire pour les données de rapport en direct, afin qu'il n'y ait pas d'accès à la base de données de production.

Une autre réflexion :à quel point exactement l'un ou l'autre de ces rapports doit-il être ? Peut-être récupérer une nouvelle liste sur une base chronométrée plutôt qu'une fois pour chaque l'affichage de la page serait suffisant.