Ik ben geen MySQL-persoon, dus dit komt uit het linkerveld.
Maar ik denk dat de logbestanden het antwoord kunnen zijn.
Gelukkig hoef je eigenlijk maar 2 dingen uit het logboek te weten.
Je hebt de record/rowid nodig, en je hebt de operatie nodig.
In de meeste DB's, en ik neem aan dat MySQL, is er een impliciete kolom op elke rij, zoals een rowid of recordid, of wat dan ook. Het is het interne rijnummer dat door de database wordt gebruikt. Dit is uw "gratis" primaire sleutel.
Vervolgens heb je de operatie nodig. Met name of het nu gaat om een invoeg-, bijwerk- of verwijderbewerking in de rij.
Je consolideert al deze informatie, in tijdsvolgorde, en loopt er dan doorheen.
Voor elke invoeging/update selecteert u de rij uit uw oorspronkelijke DB en voegt/werkt u die rij bij in uw doel-DB. Als het een verwijdering is, verwijdert u de rij.
U geeft niet om veldwaarden, ze zijn gewoon niet belangrijk. Doe de hele rij.
Hopelijk hoeft u binaire logbestanden niet te "parseren", MySQL moet al routines hebben om dat te doen, u hoeft alleen maar uit te zoeken en uit te zoeken hoe u ze kunt gebruiken (er kan zelfs een handig "dump log"-hulpprogramma zijn dat u zou kunnen gebruiken ).
Hierdoor kunt u het systeem vrij eenvoudig houden, en het zou alleen moeten afhangen van uw werkelijke activiteit gedurende de dag, in plaats van de totale DB-grootte. Ten slotte zou je het later kunnen optimaliseren door het "slimmer" te maken. Misschien voegen ze bijvoorbeeld een rij in, werken deze bij en verwijderen deze vervolgens. Je zou weten dat je die rij gewoon volledig kunt negeren in je herhaling.
Het is duidelijk dat dit een beetje geheimzinnige kennis vereist om de logbestanden daadwerkelijk te kunnen lezen, maar de rest zou eenvoudig moeten zijn. Ik zou graag denken dat de logbestanden ook een tijdstempel hebben, zodat u weet dat u "vanaf vandaag" aan rijen moet werken, of welk datumbereik u maar wilt.