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

PolarDB:グローバルセカンダリインデックス

最終更新日:May 24, 2024

このトピックでは、グローバルセカンダリインデックス (GSI) の機能とFAQについて説明します。

特徴

GSIにより、ユーザーは必要に応じてシャーディングの寸法を追加し、グローバルに一意の制約を提供できます。 各GSIはインデックステーブルに対応し、XAトランザクションを使用してプライマリテーブルとインデックステーブル間の強い一貫性を保証します。

This type of index supports the following features:

  • Adds dimensions for sharding.
  • Supports globally unique indexes.
  • Provides XA transactions to ensure strong consistency between primary tables and index tables.
  • Supports covering columns to reduce overheads from querying the primary table.
  • Provides the online schema change feature, so that the primary table can remain unlocked when a GSI is added.
  • Uses hints to specify indexes to automatically determine whether to query the primary table.

よくある質問

  • Q: GSIはどのような問題を解決できますか?
    A: クエリされたディメンションが論理テーブルのシャーディングのディメンションと異なる場合、クロスシャードクエリが開始されます。 クロスシャードクエリが増加すると、低速クエリや接続プールの枯渇などのパフォーマンスの問題が発生する可能性があります。 GSIは、シャーディングのディメンションを追加することで、クロスシャードクエリを削減し、パフォーマンスのボトルネックを解消できます。
    説明 GSIを作成するときに、プライマリテーブルとは異なるシャードキーを選択します。 詳細については、「グローバルセカンダリインデックスの使用」をご参照ください。
  • Q: GSIとローカルセカンダリインデックス (LSI) の関係は?

    A: 次の内容は、GSIとLSIの違いと関係を示しています。

    • GSIは、データ行と対応するインデックス行を異なるシャードに格納します。 クエリに含まれるデータシャードを決定します。
    • LSIは、分散データベース内の同じシャード上のデータ行および対応するインデックス行を格納する。 PolarDB − X 1.0では、特に、物理テーブルのMySQLセカンダリインデックスを参照する。
    • PolarDB-X 1.0がGSIを使用して単一のシャードにクエリを分散すると、シャードのLSIはシャード内のクエリのパフォーマンスを向上させることができます。