重要このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。システム変数tidb_snapshotを使用した履歴データの読み取りこのドキュメントでは、システム変数tidb_snapshotを使用して履歴バージョンからデータを読み取る方法について説明します。これには、履歴データを保存するための具体的な使用例や戦略も含まれます。注記:ステイル読み取り機能を使用して履歴データを読み取ることもできますが、これをお勧めします。インターフェイスを使用して履歴データを直接読み取る機能を実装しています。インターフェイスを使用してその履歴バージョンを読み取ることができます。現在のテーブル構造が異なっていても、古いテーブル構造でデータを返します。履歴バージョンからデータを読み取る方法tidb_snapshotシステム変数は、履歴データの読み取りをサポートするために導入されました。tidb_snapshot変数について:変数はSESSIONスコープで有効です。その値はSETステートメントを使用して変更できます。変数のデータ型はテキストです。取得される、世界的に一意の時刻サービスです。16:45:26.999」です。16:45:26")。その値をタイムスタンプとして使用して、データ構造のためだけにスナップショットを作成し、オーバーヘッドはありません。その後、すべてのSELECT操作がこのスナップショットからデータを読み取ります。よって割り当てられたタイムスタンプに基づいてマークされます。スナップショットが作成されるとき、バージョン番号はtidb_snapshot変数の値に基づきます。PDサーバーのローカル時刻に大きな差がある場合は、PDサーバーの時刻を使用します。設定することで、最新バージョンからデータを読み取ることができます。オブジェクトの新しいバージョンが作成されるため、データの履歴バージョンが保持されます。すべてのバージョンが保存されているわけではありません。バージョンが特定の時点よりも古い場合、storage占有量と、履歴バージョンが多すぎることによって生じるパフォーマンスのオーバーヘッドを削減するために、バージョンは完全に削除されます。バージョンが削除されます。(GC)を参照してください。以下の点に特に注意してください。'tikv_gc_safe_point'の出力。過去のデータが読めるのは現在safePointまでです。ガベージコレクションプロセスが実行されるたびに更新されます。最初の段階で、テーブルを作成し、いくつかのデータ行を挿入します。sec)テーブル内のデータをビュー。sec)テーブルのタイムスタンプをビュー。行のデータを更新します。sec)データが更新されていることを確認します。sec)スコープがセッションであるtidb_snapshot変数を設定します。変数はその値よりも前の最新バージョンを読み込めるように設定されています。注記:この例では、値は更新操作前の時間に設定されます。使用する必要があります。結果:次のステートメントから読み取られたデータは、更新操作前のデータ、つまり履歴データです。設定すると、最新バージョンからデータを読み取ることができます。使用する必要があります。よって履歴データが消去されないことを確認してください。これは、次の例に示すようにtidb_gc_life_time変数を設定することで実行できます。復元後に変数を前の値に戻すことを忘れないでください。分以上に延長すると、行の追加バージョンが保持されることになり、より多くのディスク領域が必要になる可能性があります。データ読み取り中に同じ行のこれらの追加バージョンをスキップする必要がある場合のスキャンなど、特定の操作のパフォーマンスにも影響を与える可能性があります。古いバージョンからデータを復元するには、次のいずれかの方法を使用できます。DATAを使用して後でデータをインポートします。履歴スナップショットをエクスポートするにはDumpling使用します。セットのエクスポートに優れたパフォーマンスを発揮します。Policy/Legal。