0

現在、データベースで何かをテストしています。ワードプレスのデータベースです。書き込み、削除、およびその他の操作を行う必要があります。ご存知のように、すべての新しい投稿が常に次に高い ID を継承するようにするインデックス作成メカニズムがあります。

このデータベースは、使用されているデータベースのコピーであると考えてください。それは以前に書かれています。したがって、テストが終了したときに同じになることを確認する必要があります

今のところ、私の唯一の解決策はバックアップを作成することです。したがって、計画されたテストの一部が終了した場合は、それをバックアップして、別のコピーで次のテストを開始します。

幸いなことに、データベースのサイズはごくわずかです。削除してコピーしてバックアップするのは簡単です。しかし、このデータベース テストの方法は部分的な解決策にすぎないことはわかっています。あまりにも多くのバックアップ コピーを作成する必要があります。データベースのサイズが大きい場合、どうすればよいかわかりません。非常に長いテストの悪夢になるでしょう。

ロールバックと同じように機能するソリューションがあるのだろうか。したがって、データベースをロックし、新しいエントリをある種のキャッシュとして配置するだけです。消去するか、データベースに書き込むことができます。

私は mysql と phpmyadmin を使用し、それを使用してカスタム ソリューションを開発しました。

編集 ::: PHP ソリューションを開発するときに、データベースで効果的にテストを行う方法は?

4

3 に答える 3

1

投稿番号は自動インクリメント フィールドですか? そうでない場合は、WordPress に (一時的に) ハッキングして、新しい投稿が保存されているコードを探します。保存する前に、投稿 ID 番号に 1000 などの定数を追加しないでください。テストが終了したら、定数より大きい ID 番号を削除します。

于 2010-04-22T07:53:43.763 に答える
1

レコードを削除した後、新しいレコードを挿入するときに、id を空白のままにするのではなく、必要な番号に設定すると、そのインデックスが再び埋められるはずです。

于 2010-04-20T17:02:27.177 に答える
1

ファイル システムが書き込み可能なスナップショット (LVM、ZFS、Veritas など) をサポートしている場合、データベース パーティション全体のインスタント コピーを取得し、それを別の場所にマウントし、スナップショットを使用する MYSQL の新しいインスタンスを開始し、テストを実行できます。スナップショットを削除します - すべてレプリカに影響を与えません。

スナップショットには、テスト中に変更されたデータ量のストレージしか必要ないため、数 GB しか必要ない場合があります。

于 2010-04-21T09:22:09.263 に答える