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

:GSI

最終更新日:May 28, 2024

グローバルセカンダリインデックス (GSI) は、PolarDB-Xの重要な機能です。 GSIは、ローカルセカンダリインデックスとは異なる。 GSI内のデータは、指定されたメソッドに基づいて分割され、複数のストレージノードに分散されます。 GSIを使用すると、データパーティション分割のディメンションを追加し、グローバルに一意の制約を作成できます。

各GSIは、分散インデックステーブルに対応する。 分散インデックステーブルは、指定されたルールに基づいて複数の物理テーブルに水平に分割されます。 PolarDB-Xは分散トランザクションを使用して、データベースのプライマリテーブルとインデックステーブル間の強力なデータ一貫性を確保します。 456789

GSIを使用する場合は、次の操作を実行できます。

  • カバーインデックスを使用すると、プライマリテーブルのクエリのオーバーヘッドを減らすことができます。

  • プライマリテーブルをロックせずに、オンラインでテーブルのスキーマを変更し、GSIを追加できます。

  • ヒントを使用してインデックスを指定できます。 この操作を実行すると、システムはプライマリテーブルをクエリするかどうかを自動的に判断できます。

例1: データのパーティション分割にディメンションを追加します。 たとえば、オンラインショッピングプラットフォームの注文テーブルを購入者ごとに分割する場合、指定された販売者のデータ (現在の月に指定された販売者が行ったすべての注文など) を照会するときに、すべてのパーティションをスキャンする必要があります。 GSIを使用すると、照会された販売者のデータが保存されているインデックステーブルパーティションのみをスキャンできます。 これにより、注文情報をすばやく見つけることができます。

例2: グローバルに一意の制約を追加します。 たとえば、ユーザーテーブルは、ユーザーIDによって分割された分散テーブルです。 ユーザーの携帯電話番号をグローバルに一意にするには、その携帯電話番号をインデックスキーおよびパーティションキーとして使用する一意のインデックスを作成する必要があります。 ユーザーの携帯電話番号は、ローカルインデックスのみが使用される場合、グローバルに一意にすることはできません。