Au travail, nous faisons un vidage nocturne de nos bases de données mysql. De jour en jour, je pense que près de 90 à 95% des données sont en double, augmentant avec le temps. (Heck à ce stade, certains sont probablement à 99%)
Ces vidages sont là où une ligne est une seule instruction mysql INSERT, donc les seules différences sont les lignes entières et l'ordre dans lequel elles se trouvent dans le fichier. Si je les triais, la différence réelle d'un fichier à l'autre serait très faible.
J'ai cherché et je n'ai trouvé aucun moyen de trier la sortie sur le vidage. Je pourrais le diriger via la sort
commande, cependant. Il y aurait alors de longs, longs blocs de lignes identiques.
J'essaie donc de trouver un moyen de stocker uniquement les différences. Je pourrais commencer avec un vidage principal, et faire la différence contre cela chaque nuit. Mais les différences seraient plus importantes chaque nuit. Ou, je pourrais faire des différences de roulement, qui individuellement seraient très petites, mais il semble que cela prendrait de plus en plus de temps à calculer, si je dois assembler un diff principal de chaque série chaque nuit.
Est-ce faisable? Avec quels outils?
Edit Je ne demande pas comment faire des sauvegardes mysql. Oubliez mysql pour le moment. C'est un hareng rouge. Ce que je veux savoir, c'est comment créer une série de différences de roulement à partir d'une série de fichiers. Chaque nuit, nous obtenons un fichier (qui se trouve être un fichier mysqldump ) qui est similaire à 99% à celui qui le précède. Oui, nous les gzipons tous. Mais c'est redondant d'avoir toute cette redondance en premier lieu. Tout ce dont j'ai vraiment besoin, c'est des différences par rapport à la veille ... ce qui n'est différent que de 1% de la veille ... et ainsi de suite. Donc, ce que je veux, c'est comment faire une série de différences, donc je n'ai besoin que de stocker ce 1% chaque nuit.