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

Optimiser les insertions MySQL pour gérer un flux de données

Si vos données n'ont pas besoin d'aller immédiatement dans la base de données, vous pouvez mettre en cache vos données d'insertion quelque part, puis émettre une instruction d'insertion plus grande, par exemple

insérer dans table_name (x, y, z) les valeurs (x1, y1, z1), (x2, y2, z2), ... (xN, yN, zN) lors d'une mise à jour en double ... ;

Pour être clair, je maintiendrais une liste des insertions en attente. Dans ce cas une liste de triplets (x,z,y). Ensuite, une fois que votre liste dépasse un certain seuil (N), vous générez l'instruction d'insertion et l'émettez.

Je n'ai pas de chiffres de synchronisation précis pour vous, mais cela a augmenté les performances d'environ 10 fois par rapport à l'insertion de chaque ligne individuellement.

Je n'ai pas non plus joué avec la valeur de N, mais j'ai trouvé que 1000 fonctionnait bien. Je suppose que la valeur optimale est affectée par les paramètres du matériel et de la base de données.

J'espère que cela vous aidera (j'utilise également MyIsam).