在工作中,我们每晚进行mysql数据库转储。每天,我都会想像一下近90-95%的数据是重复的,并且随着时间的推移而增加。(在这一点上,大概是99%)
这些转储的一行仅是一条mysql INSERT语句,因此唯一的区别是整行以及它们在文件中的排列顺序。如果我将它们排序,则文件之间的实际差异将很小。
我一直在寻找,而且还没有找到对转储输出进行排序的任何方法。不过,我可以通过sort
命令来传递它。然后将有很长很长的相同行的块。
因此,我试图找到一种仅存储差异的方法。我可以从一个主转储开始,然后每晚与之比较。但是差异每晚都会更大。或者,我可以制作滚动差异,每个差异非常小,但是如果我每晚必须整理整个系列的主要差异,似乎计算时间会越来越长。
这可行吗?用什么工具?
编辑我不问如何做mysql备份。暂时忘记mysql。这是一条红鲱鱼。我想知道的是如何从一系列文件中生成一系列滚动差异。每天晚上,我们都会收到一个文件(恰好是mysqldump文件),与之前的文件相似,为99%。是的,我们将它们全部压缩。但是将所有这些冗余放在首位是多余的。我真正需要的是与前一天晚上的区别……与前一天晚上的区别仅……1%,依此类推。因此,我要做的是如何进行一系列比较,以便每晚只存储1%。