MySQL データベースに列があり、その値のすべてのリビジョンと、それらが変更された日付を保存したいと考えています。
これを可能にする組み込みのメカニズムは MySQL にありますか、またはこの問題を解決するための推奨される方法はありますか?
MySQLに組み込まれているそのような機能はありません。保存する必要があるものに応じて、これを自分で実装する必要があります。永続ロジックに、必要なログデータを別の履歴テーブルに挿入するレイヤーを導入する場合があります。
変更の量によっては、クリーンアップ戦略を検討するようにしてください。これらの履歴は時間の経過とともに大きくなる可能性があるためです。
このような履歴が必要な複数のテーブルについて話している場合は、予想される変更の全体的な量に応じて、変更が属するテーブルを識別する追加の列を持つ単一の履歴テーブル、または別の履歴のいずれかを使用できます。データテーブルごとのテーブル。
また、利用可能なさまざまなストレージエンジンも確認してください。圧縮されたアーカイブストレージエンジンがあります。これは、挿入されたデータの変更を許可せず、他の制限がありますが、そのストレージ要件は、たとえばInnoDBよりも低くなります。アドホッククエリではなくアーカイブ目的で設計されているため、適切な場合とそうでない場合があります。