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

PolarDB:グローバルインデックスの確認

最終更新日:Mar 29, 2026

CHECK GLOBAL INDEX は、ベーステーブルとそのグローバルセカンダリインデックス(GSI)テーブル間のデータ整合性を検証し、検出された不整合を修復します。

仕組み

この文は、インデックスエントリが存在するか、正しく配置されているか、およびベーステーブルのデータと一致するかをチェックします。検出された相違点は、以下の 4 種類のエラー型のいずれかに分類されます:MISSINGORPHANCONFLICT、または ERROR_SHARD

構文

CHECK GLOBAL INDEX gsi_name [ON tbl_name] [extra_cmd]

パラメーター

パラメーター説明
gsi_name確認対象の GSI の名前です。
tbl_name省略可能。ベーステーブルの名前です。指定した場合、GSI テーブルとベーステーブル間のインデックス関係も検証されます。
extra_cmd省略可能。操作モードを制御します。下記の表をご参照ください。

extra_cmd のオプション

機能使用タイミング
(なし)GSI をチェックし、検出された不整合を返します。まずこのコマンドを実行して、エラーを特定します。
SHOW指定された GSI に対する直近の検証または修復の結果を表示します。修復後に、修復レポートを確認する際に使用します。
CORRECTION_BASED_ON_PRIMARYベーステーブルのデータに基づいて GSI テーブルを修復します。デフォルトのチェックでエラーを特定した後に使用します。

注意事項

  • 検証および修復操作はシステムリソースを消費します。ほとんどの場合、これは、修復操作中にベーステーブルまたはインデックステーブル内のデータがロックされ、バッチ単位で修復されるためです。これらの操作は、非ピーク時間帯に実行してください。

  • 大規模なテーブルでは、検証に多大な時間がかかる場合があります。ブロッキングを回避して実行するには、HINT を使用して PURE_ASYNC_DDL_MODE を有効化し、DDL 文を純粋な非同期モードで実行します。

  • 1 行に複数の種類のエラーが存在する場合、結果セットには、同一のプライマリキーに対して異なる ERROR_TYPE 値を持つ複数の行が返されます。

  • 結果セットの最終行は常に SUMMARY 行です。まずこの行を確認し、エラーが検出されたかどうかを判断してください。

GSIs について詳しくは、「GSI」をご参照ください。

結果の列

説明
GSI_TABLEGSI の名前です。
ERROR_TYPEエラーの種類です。有効な値: MISSING(欠落しているインデックスエントリ)、ORPHAN(対応するベーステーブル行がない孤立したインデックスエントリ)、CONFLICT(インデックスデータがベーステーブルと一致しない)、ERROR_SHARD(データシャードの位置が誤っている)、SUMMARY(全体の結果)。
STATUSエントリの状態です。FOUND はエラーが検出されたことを示します。REPAIRED はエラーが修復されたことを示します。--SUMMARY 行に使用されます。
PRIMARY_KEY影響を受ける行のプライマリキーです。
DETAILSエラーの詳細です。

以下の例では、検証から修復までの完全なワークフローを示します。

不整合の確認

GSI g_i_check を確認するには、次の文を実行します:

CHECK GLOBAL INDEX `g_i_check`;

エラーが見つからない場合、結果には SUMMARY 行のみが含まれます:

+-------------+------------+--------+-------------+-----------------------------+
| GSI_TABLE   | ERROR_TYPE | STATUS | PRIMARY_KEY | DETAILS                     |
+-------------+------------+--------+-------------+-----------------------------+
| `g_i_check` | SUMMARY    | --     | --          | OK (7025/7025 rows checked) |
+-------------+------------+--------+-------------+-----------------------------+
1 row in set (1.40 sec)

エラーが見つかった場合、各エラーごとに 1 行が返され、その後に SUMMARY 行が続きます:

+-------------+------------+--------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GSI_TABLE   | ERROR_TYPE | STATUS | PRIMARY_KEY | DETAILS                                                                                                                                                                                                                                                                                                                                                                                        |
+-------------+------------+--------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `g_i_check` | ORPHAN     | FOUND  | (100722)    | {"GSI":{"id":100722,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_binary":"OTkAAAAAAAAAAA==","c_int_32":271}}                                                                                                                                                                                              |
| `g_i_check` | CONFLICT   | FOUND  | (108710)    | {"Primary":{"id":108710,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_year":"2000","c_int_32":255},"GSI":{"c_int_32_un":123456,"id":108710,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_year":"2000","c_int_32":255}} |
| `g_i_check` | MISSING    | FOUND  | (100090)    | {"Primary":{"id":100090,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_blob_tiny":"YeS4reWbvWE=","c_int_32":280}}                                                                                                                                                                                           |
| `g_i_check` | SUMMARY    | --     | --          | 3 error found (7025/7025 rows checked)                                                                                                                                                                                                                                                                                                                                                         |
+-------------+------------+--------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4 rows in set (1.92 sec)

不整合の修復

エラーを特定した後、ベーステーブルに基づいて GSI を修復するには、次の文を実行します:

CHECK GLOBAL INDEX g_i_check CORRECTION_BASED_ON_PRIMARY;

次の結果が返されます:

+-------------+------------+--------+-------------+------------------------------------------------------------------------+
| GSI_TABLE   | ERROR_TYPE | STATUS | PRIMARY_KEY | DETAILS                                                                |
+-------------+------------+--------+-------------+------------------------------------------------------------------------+
| `g_i_check` | SUMMARY    | --     | --          | Done. Use SQL: { CHECK GLOBAL INDEX `g_i_check` SHOW; } to get result. |
+-------------+------------+--------+-------------+------------------------------------------------------------------------+
1 row in set (1.40 sec)

修復レポートの表示

直近の検証または修復の結果を表示するには、次の文を実行します:

CHECK GLOBAL INDEX `g_i_check` SHOW;

修復済みの各エラーは、STATUSREPAIRED に設定された行として表示されます:

+-------------+------------+----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GSI_TABLE   | ERROR_TYPE | STATUS   | PRIMARY_KEY | DETAILS                                                                                                                                                                                                                                                                                                                                                                                        |
+-------------+------------+----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| `g_i_check` | MISSING    | REPAIRED | (100090)    | {"Primary":{"id":100090,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_blob_tiny":"YeS4reWbvWE=","c_int_32":280}}                                                                                                                                                                                           |
| `g_i_check` | CONFLICT   | REPAIRED | (108710)    | {"Primary":{"id":108710,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_year":"2000","c_int_32":255},"GSI":{"c_int_32_un":123456,"id":108710,"c_timestamp_6":"2000-01-01 00:00:00.000000","c_timestamp_3":"2000-01-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_year":"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-01 00:00:00.000","c_timestamp_1":"2000-01-01 00:00:00.0","c_binary":"OTkAAAAAAAAAAA==","c_int_32":271}}                                                                                                                                                                                              |
| `g_i_check` | SUMMARY    | --       | --          | 3 error found (7025/7026 rows checked.) Finish time: 2020-01-13 14:41:51.0                                                                                                                                                                                                                                                                                                                     |
+-------------+------------+----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.02 sec)