sql >> Base de Datos >  >> RDS >> Mysql

La última pesadilla de la base de datos heredada de MySQL

No soy una persona de MySQL, por lo que esto sale del campo izquierdo.

Pero creo que los archivos de registro podrían ser la respuesta.

Afortunadamente, solo necesitas saber 2 cosas del registro.

Necesita el registro/fila, y necesita la operación.

En la mayoría de las bases de datos, y supongo que MySQL, hay una columna implícita en cada fila, como un ID de fila o un ID de registro, o lo que sea. Es el número de fila interno utilizado por la base de datos. Esta es su clave principal "gratuita".

A continuación, necesita la operación. En particular, si se trata de una operación de inserción, actualización o eliminación en la fila.

Consolida toda esta información, en orden de tiempo, y luego la revisa.

Para cada inserción/actualización, selecciona la fila de su base de datos original e inserta/actualiza esa fila en su base de datos de destino. Si es una eliminación, entonces elimina la fila.

No le importan los valores de campo, simplemente no son importantes. Haz toda la fila.

Con suerte, no debería tener que "analizar" los archivos de registro binarios, MySQL ya debe tener rutinas para hacerlo, solo necesita encontrarlos y descubrir cómo usarlos (incluso puede haber alguna utilidad útil de "registro de volcado" que podría usar ).

Esto le permite mantener el sistema bastante simple y solo debería depender de su actividad real durante el día, en lugar del tamaño total de la base de datos. Finalmente, más tarde podría optimizarlo haciéndolo "más inteligente". Por ejemplo, quizás inserten una fila, luego la actualicen y luego la eliminen. Sabría que puede ignorar esa fila por completo en su repetición.

Obviamente, esto requiere un poco de conocimiento arcano para poder leer los archivos de registro, pero el resto debería ser sencillo. Me gustaría pensar que los archivos de registro también tienen una marca de tiempo, por lo que puede saber trabajar en las filas "a partir de hoy", o en el rango de fechas que desee.