sql >> Databáze >  >> RDS >> Mysql

Nejlepší noční můra starší databáze MySQL

Nejsem uživatel MySQL, takže to vychází z levého pole.

Ale myslím, že log soubory by mohly být odpovědí.

Naštěstí opravdu potřebujete vědět jen 2 věci z protokolu.

Potřebujete záznam/rowid a potřebujete operaci.

Ve většině DB, a předpokládám, že MySQL, je na každém řádku implicitní sloupec, jako rowid nebo recordid, nebo cokoli jiného. Je to interní číslo řádku používané databází. Toto je váš „bezplatný“ primární klíč.

Dále potřebujete operaci. Zejména ať už se jedná o operaci vložení, aktualizace nebo odstranění na řádku.

Všechny tyto informace sloučíte v časovém pořadí a poté je projdete.

Pro každé vložení/aktualizaci vyberete řádek z vaší původní DB a vložíte/aktualizujete tento řádek do cílové DB. Pokud se jedná o smazání, smažete řádek.

Hodnoty pole vás nezajímají, prostě nejsou důležité. Udělejte celý řádek.

Doufejme, že byste neměli muset "analyzovat" binární soubory protokolu, MySQL už k tomu musí mít rutiny, stačí najít a zjistit, jak je používat (může dokonce existovat nějaký praktický nástroj "dump log", který byste mohli použít ).

To vám umožní udržet systém docela jednoduchý a měl by záviset pouze na vaší skutečné aktivitě během dne, spíše než na celkové velikosti DB. Nakonec byste jej mohli později optimalizovat tím, že bude „chytřejší“. Například mohou vložit řádek, pak jej aktualizovat a poté odstranit. Věděli byste, že můžete tento řádek ve svém přehrávání zcela ignorovat.

Je zřejmé, že to vyžaduje trochu tajemných znalostí, aby bylo možné skutečně číst soubory protokolu, ale zbytek by měl být jednoduchý. Rád bych si myslel, že soubory protokolu jsou také opatřeny časovým razítkem, takže můžete vědět, že pracovat na řádcích "od dneška" nebo z jakéhokoli časového období, které chcete.



  1. Oracle PL/SQL - tipy pro okamžitý výstup / tisk z konzole

  2. SQL Developer se nespustí

  3. Upozornění:Převod pole na řetězec v

  4. TODATETIMEOFFSET() Příklady v SQL Server