0

MySql を開発データベースとして、また Web サイトがホストされているサーバーでも使用しています。今では毎日、新しいデータをデータベースに入力し、SQLyog を使用して SQL ダンプとして保存しています。しかし、サーバー Mysql データベースでその日のデータを更新するときは、テーブルを切り捨ててから新しいデータを挿入する必要があります。これにより、次の懸念が生じます。

  1. 各テーブルの 5000 行以上のデータは、挿入クエリの実行に失敗します。したがって、2000 行のバッチでデータを挿入する必要があります。

  2. 特定のテーブルを切り捨て、新しいデータがまだ挿入されていないときは、Web サイトで要求を行ってもデータがまったく返されません。これは5〜7分です。

  3. 毎日、各テーブルに約 300 行しか追加されませんが、テーブルの完全なデータを挿入する必要があります。

その日まで完全なデータではなく、サーバー上で同じものを更新できるように、ローカルMySqlデータベースの増分バックアップを作成する方法を提案してください。

4

2 に答える 2

1

単純な開発環境の場合、実際にはインクリメンタル ダンプ ルートを使用することはお勧めしません。私の知る限り、mysqlはこれを行うための組み込みの方法を提供していません。本当にこれを行いたい場合は、バイナリ ログを使用できます。バイナリログを使用して、翌日からステートメントを再生します。内部的には、MySQL はレプリケーションにバイナリ ログを使用します。(免責事項、私はこれまでにこれを行ったことはありません。開発コピーを挿入または削除した場合、問題が発生することは間違いありません。)

または、別のデータベースを毎回作成し、その中にダンプをインポートして、新しいデータベースを使用するようにアプリを再構成することもできます。再構成が完了したら、昨日の DB をドロップすれば問題ありません。ダウンタイムなし...

于 2010-08-18T03:22:33.270 に答える
0

次のようにコマンドラインダンプと復元を使用してみませんか-

ダンプを作成するには -

mysql -u root -h localhost -p db_name > db_name_dump_version.sql

これにより、DB がファイル db_name_dump_version.sql にダンプされます。

それから復元するには -

mysql -u root -h localhost -p db_name < db_name_dump_version.sql

コマンド ライン mysql は非常に高速であるため、100 万行の DB でも 10 秒以上待つ必要はありません。

于 2010-08-18T02:31:27.953 に答える