sql >> データベース >  >> RDS >> Mysql

究極のMySQLレガシーデータベースの悪夢

    私はMySQLの人ではないので、これは左翼手から出てきています。

    しかし、ログファイルが答えかもしれないと思います。

    ありがたいことに、ログから知っておく必要があるのは2つだけです。

    レコード/ROWIDが必要であり、操作が必要です。

    ほとんどのDBでは、MySQLを想定していますが、各行には、rowidやrecordidなどの暗黙の列があります。これは、データベースで使用される内部行番号です。これは「無料の」主キーです。

    次に、操作が必要です。特に、行の挿入、更新、削除のいずれの操作でもかまいません。

    このすべての情報を時間順に統合してから、実行します。

    挿入/更新ごとに、元のDBから行を選択し、その行を宛先DBに挿入/更新します。削除の場合は、行を削除します。

    フィールド値は気にしません。重要ではありません。行全体を実行します。

    うまくいけば、バイナリログファイルを「解析」する必要はありません。MySQLにはすでにそれを行うためのルーチンが必要です。それらの使用方法を見つけて理解する必要があります(使用できる便利な「ダンプログ」ユーティリティがある場合もあります)。 。

    これにより、システムを非常にシンプルに保つことができ、DBの合計サイズではなく、日中の実際のアクティビティのみに依存する必要があります。最後に、後で「よりスマート」にすることで最適化できます。たとえば、行を挿入してから更新してから削除する場合があります。リプレイでその行を完全に無視できることをご存知でしょう。

    明らかに、これは実際にログファイルを読み取るために少し難解な知識を必要としますが、残りは簡単なはずです。ログファイルにもタイムスタンプが付けられているので、「今日から」の行、または任意の日付範囲で作業することができます。



    1. WordPressメタクエリ配列

    2. MySQLホスト'::1'または'127.0.0.1'はこのMySQLサーバーへの接続を許可されていません

    3. phpを使用してテーブルにデータを挿入します

    4. PostgreSQLで重複する行を選択する4つの方法