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

Le cauchemar ultime de la base de données héritée MySQL

Je ne suis pas une personne MySQL, donc cela sort du champ gauche.

Mais je pense que les fichiers journaux pourraient être la réponse.

Heureusement, vous n'avez vraiment besoin de connaître que 2 éléments du journal.

Vous avez besoin du record/rowid, et vous avez besoin de l'opération.

Dans la plupart des bases de données, et je suppose que MySQL, il y a une colonne implicite sur chaque ligne, comme un rowid ou un recordid, ou autre. C'est le numéro de ligne interne utilisé par la base de données. Il s'agit de votre clé primaire "gratuite".

Ensuite, vous avez besoin de l'opération. Notamment s'il s'agit d'une opération d'insertion, de mise à jour ou de suppression sur la ligne.

Vous consolidez toutes ces informations, dans l'ordre chronologique, puis vous les parcourez.

Pour chaque insertion/mise à jour, vous sélectionnez la ligne de votre base de données d'origine et insérez/mettez à jour cette ligne dans votre base de données de destination. S'il s'agit d'une suppression, vous supprimez la ligne.

Vous ne vous souciez pas des valeurs de champ, elles ne sont tout simplement pas importantes. Faites toute la rangée.

Espérons que vous ne devriez pas avoir à "parser" les fichiers journaux binaires, MySQL doit déjà avoir des routines pour le faire, il vous suffit de trouver et de comprendre comment les utiliser (il peut même y avoir un utilitaire pratique de "dump log" que vous pourriez utiliser ).

Cela vous permet de garder le système assez simple, et cela ne devrait dépendre que de votre activité réelle pendant la journée, plutôt que de la taille totale de la base de données. Enfin, vous pourrez par la suite l'optimiser en le rendant "plus intelligent". Par exemple, ils insèrent peut-être une ligne, puis la mettent à jour, puis la suppriment. Vous sauriez que vous pouvez simplement ignorer complètement cette ligne dans votre relecture.

Évidemment, cela prend un peu de connaissance des arcanes pour lire les fichiers journaux, mais le reste devrait être simple. J'aimerais penser que les fichiers journaux sont également horodatés, de sorte que vous pouvez savoir travailler sur des lignes "à partir d'aujourd'hui", ou sur la plage de dates de votre choix.