En el trabajo hacemos un volcado nocturno de nuestras bases de datos mysql. De día en día, quisiera estimar que cerca del 90-95% de los datos están duplicados, aumentando a medida que pasa el tiempo. (Diablos, en este punto, algunos son probablemente del 99%)
Estos volcados son donde una línea es una sola instrucción INSERT de mysql, por lo que las únicas diferencias son las líneas enteras y el orden en que están en el archivo. Si los ordenara, la diferencia real de un archivo a otro sería muy pequeña.
He estado buscando y no he encontrado ninguna forma de ordenar la salida en el volcado. Sin embargo, podría canalizarlo a través del sort
comando. Entonces habría largos, largos bloques de líneas idénticas.
Así que estoy tratando de encontrar una manera de almacenar solo las diferencias. Podría comenzar con un volcado maestro, y diferir en contra de eso cada noche. Pero las diferencias serían mayores cada noche. O bien, podría hacer diffs continuos, que individualmente serían muy pequeños, pero parece que tomaría más y más tiempo calcularlos, si tengo que armar un diff maestro de toda la serie cada noche.
¿Es esto factible? ¿Con que herramientas?
Editar No estoy preguntando cómo hacer copias de seguridad mysql. Olvídate de mysql por el momento. Es un arenque rojo. Lo que quiero saber es cómo hacer una serie de diferencias continuas de una serie de archivos. Cada noche tenemos un archivo (que resulta ser un archivo mysqldump ) que es 99% similar al anterior. Sí, los comprimimos a todos. Pero es redundante tener toda esa redundancia en primer lugar. Todo lo que realmente necesito son las diferencias de la noche anterior ... que es solo un 1% diferente de la noche anterior ... y así sucesivamente. Entonces, lo que busco es cómo hacer una serie de diferencias, así que solo necesito almacenar ese 1% cada noche.