すべてのプロダクト
Search
ドキュメントセンター

PolarDB:チェックグローバルインデックス

最終更新日:May 24, 2024

CHECK GLOBAL INDEXステートメントを実行して、プライマリテーブルとインデックステーブルの間でデータが一貫しているかどうかを確認し、一貫性のないデータを変更できます。

構文

チェックグローバルインデックスgsi_name [ON tbl_name] [extra_cmd]
パラメーター説明
gsi_name検証が必要なグローバルセカンダリインデックス (GSI) の名前。
tbl_nameオプションです。 GSIが存在するプライマリテーブル。 プライマリテーブルの特定の名前を入力すると、システムはGSIテーブルとプライマリテーブルの間のインデックス関係が有効かどうかを確認します。
extra_cmd予約済みの追加命令。 有効な値:
  • -: キーワードが指定されていない場合、GSIのみがチェックされることを示します。
  • SHOW: 指定されたGSIテーブルの最新の検証または修正の結果を表示します。
  • CORRECTION_BASED_ON_PRIMARY: プライマリテーブルに基づいてGSIテーブルのデータを修正します。
説明
  • 一部のシステムリソースは、GSIテーブルのデータが検証または修正されるときに占有されます。 これは、特に、プライマリテーブルまたはインデックステーブルのデータがロックされ、修正操作中にバッチで修正される場合に発生します。 これらの操作は、オフピーク時に実行することを推奨します。 GSIの使用方法の詳細については、「グローバルセカンダリインデックスの使用」をご参照ください。
  • 大きなテーブルのGSIの検証には長い時間がかかる場合があります。 HINTを使用してPURE_ASYNC_DDL_MODEを指定し、純粋な非同期モードでデータ定義言語 (DDL) ステートメントを実行できます。 詳細については、「DDL実行エンジンの制御パラメーター」をご参照ください。

  • 検証のために次のステートメントを実行できます。
    mysql> CHECK GLOBAL INDEX 'g_i_check ';
    • 検証中にエラーが報告されない場合は、次の結果が返されます
      。| GSI_TABLE | ERROR_TYPE | ステータス | PRIMARY_KEY | 詳細 |
      + ----------- ------------------------------------------------- ----------------------------- +
      | 'g_i_check '| 概要 | -- | -- | OK (7025/7025行チェック) |
      + ----------- ------------------------------------------------- ----------------------------- +
      1行セット (1.40秒) 
    • 検証中にエラーが報告された場合、次の結果が返されます
      。+ ------------ + ------------- + ----------------------- + ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +
      | GSI_TABLE | ERROR_TYPE | ステータス | PRIMARY_KEY | 詳細 |
      + ----------- ------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +
      | 'g_i_check '| ORPHAN | FOUND | (100722) | {"GSI":{"id":100722,"c_timestamp_6":"2000-01 00:00:00:00. 000000","c_timestamp_3":"2000-01 00:00.000" 、"c_timestamp_1":"00:01-c01": 0 "。" OTkAAAAAAAAAAA=="," c_int_32 ":271}} |
      | 'g_i_check '| CONFLICT | (108710) | {"Primary":{"id":108710,"c_timestamp_6":"2000-01 00:00:00.000000","c_timestamp_3":"2000-01 00:00.000" 、"c_timestamp_1":"2000-01" 00:01-00 "、" 00:01 ": 2000" "c_int_32":255} 、"GSI":{"c_int_32_un":123456、"id":108710、"c_timestamp_6":"2000-01 00:00:00.000000" 、"c_timestamp_3":"2000-01 00:00.000" 、"c_timestamp_1":":" 00:01 "00:01-" 、"2000。" c_int_32 ":255}} |
      | 'g_i_check '| MISSING | (100090) | {"Primary":{"id":100090,"c_timestamp_6":"2000-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00-" reb_blo_" "00:00" 、"c_blo_b00" 、"00:01" 。"c_int_32":280}} |
      | 'g_i_check '| 概要 | -- | -- | 3エラーが見つかりました (7025/7025行がチェックされました) |
      + ----------- ------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +
      セットの4列 (1.92秒) 
      説明 データに複数の種類のエラーがある場合、同じデータ行に対して複数のERROR_TYPE値が返されます。
  • 修正のために次のステートメントを実行できます。
    mysql> CHECK GLOBAL INDEX g_i_check CORRECTION_BASED_ON_PRIMARY;

    次の結果が返されます。

    + ----------- ------------------------------------------------- ------------------------------------------------------------------------ +
    | GSI_TABLE | ERROR_TYPE | ステータス | PRIMARY_KEY | 詳細 |
    + ----------- ------------------------------------------------- ------------------------------------------------------------------------ +
    | 'g_i_check '| 概要 | -- | -- | | 完了しました。 SQL: { CHECK GLOBAL INDEX 'g_i_check 'SHOW; } を使用して結果を取得します。 |
    + ----------- ------------------------------------------------- ------------------------------------------------------------------------ +
    1行セット (1.40秒) 
  • 次のステートメントを実行して、最新の検証または修正のレポートを表示できます。
    mysql> CHECK GLOBAL INDEX 'g_i_check 'SHOW;

    次の結果が返されます。

    + ----------- ---------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +
    | GSI_TABLE | ERROR_TYPE | ステータス | PRIMARY_KEY | 詳細 |
    ------------ --------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +
    | 'g_i_check '| MISSING | REPAIRED | (100090) | {"Primary":{"id":100090,"c_timestamp_6":"2000-01 00:00:00:00. 000000","c_timestamp_3":"2000-blo_b01" 00:00 "、" blo_b01 "、" 00:00: "、" "c_int_32":280}} |
    | 'g_i_check '| CONFLICT | REPAIRED | (108710) | {"Primary":{"id":108710,"c_timestamp_6":"2000-01 00:00:00.000000","c_timestamp_3":"2000-01 00:00.000":"2000-c01" 00:00.000 ":" 00:00 "" c_int_32 ":255} 、" GSI ":{" c_int_32_un ":123456、" id ":108710、" c_timestamp_6 ":" 2000-01 00:00:00.000000 "、" c_timestamp_3 ":" 2000-01 00:00.000 "、" c_timestamp_1 ":":"00:01" 00:01-"、" 2000。"c_int_32":255}} |
    | 'g_i_check '| ORPHAN | REPAIRED | (100722) | {"GSI":{"id":100722,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01 00:00.000" 、"c_timestamp_1:":"00:01-" 。"OTkAAAAAAAAAAA==","c_int_32":271}} |
    | 'g_i_check '| 概要 | -- | -- | 3つのエラーが見つかりました (7025/7026行がチェックされました) 。終了時間: 2020-01-13 14:41:51.0 |
    ------------ --------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +
    セットの4列 (0.02秒) 
表1. 列名の説明
列名説明
GSI_TABLEGSIの名前。
ERROR_TYPEエラータイプ。 有効な値:
  • 行方不明: 欠落しているインデックス
  • ORPHAN: 孤児のインデックス
  • CONFLICT: 一貫性のないインデックスデータ
  • ERROR_SHARD: データシャードの位置エラー
  • 概要: 結果の概要
ステータスステータス 有効な値:
  • FOUND: エラーが見つかりました。
  • REPAIRED: エラーは修復されました。
PRIMARY_KEY主キー。
詳細エラーの詳細。