No trabalho, fazemos um despejo noturno de nossos bancos de dados mysql. Diariamente, gostaria de estimar que cerca de 90-95% dos dados são duplicados, aumentando à medida que o tempo passa. (Heck neste momento alguns são provavelmente 99%)
Esses despejos são onde uma linha é uma única instrução INSERT do mysql; portanto, as únicas diferenças são as linhas inteiras e a ordem em que elas estão no arquivo. Se eu os classificasse, a diferença real de arquivo para arquivo seria muito pequena.
Eu estive procurando e não encontrei nenhuma maneira de classificar a saída no dump. Eu poderia passar através do sort
comando, no entanto. Então haveria longos, longos blocos de linhas idênticas.
Então, eu estou tentando descobrir uma maneira de armazenar apenas as diferenças. Eu poderia começar com um despejo mestre e diferir disso todas as noites. Mas as diferenças seriam maiores a cada noite. Ou, eu poderia fazer diferenças de rolagem, que individualmente seriam muito pequenas, mas parece que levaria mais e mais tempo para calcular, se eu tiver que montar uma comparação mestre de toda a série a cada noite.
Isso é viável? Com quais ferramentas?
Editar Não estou perguntando como fazer backups do mysql. Esqueça o mysql por enquanto. É um arenque vermelho. O que eu quero saber é como fazer uma série de diferenças de rolagem a partir de uma série de arquivos. A cada noite, obtemos um arquivo (que por acaso é um arquivo mysqldump ) 99% semelhante ao arquivo anterior. Sim, nós compactamos todos eles. Mas é redundante ter toda essa redundância em primeiro lugar. Tudo o que realmente preciso é das diferenças da noite anterior ... que são apenas 1% diferentes da noite anterior ... e assim por diante. Então, o que eu estou procurando é como fazer uma série de diferenças, então eu preciso armazenar apenas 1% a cada noite.