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

ApsaraDB for SelectDB:インデックスベースの高速化

最終更新日:Mar 25, 2025

このトピックでは、ApsaraDB for SelectDB の組み込みインテリジェントインデックスと、その使用方法について説明します。

背景情報

インデックスは、データの迅速なフィルタリングまたはクエリに使用されます。 ApsaraDB for SelectDB は、次のタイプのインデックスをサポートしています。

ゾーンマップインデックス

ゾーンマップインデックスは、列指向ストレージ形式の各列に対して自動的に維持されるインデックス情報で、最小値、最大値、および NULL 値の数が含まれます。ゾーンマップインデックスは、ApsaraDB for SelectDB によって自動的に作成および維持されます。

プレフィックスインデックス

ApsaraDB for SelectDB は従来のデータベースとは異なります。ApsaraDB for SelectDB は、超並列処理 (MPP) アーキテクチャを使用して、同時実行性を高めることで大量のデータを処理するオンライン分析処理 (OLAP) データベースです。ApsaraDB for SelectDB は、インデックススキーマと連携してクエリを高速化できます。

ApsaraDB for SelectDB のデータは、ソート済み文字列テーブル (SSTable) に似たデータ構造に格納されます。このデータ構造は、指定された列に基づいてデータをソートおよび格納できる順序付きデータ構造です。このデータ構造では、ソート列に基づいてデータを効率的にクエリできます。

Aggregate、Unique、および Duplicate キーモデルでは、基になるデータストレージは、テーブルの作成に使用される AGGREGATE KEY、UNIQUE KEY、および DUPLICATE KEY 文で指定された列に基づいてデータをソートおよび格納します。プレフィックスインデックスは、データのソート後、指定されたプレフィックス列に基づいてデータをすばやくクエリするために使用されます。

次の例では、データ行の最初の 36 バイトをデータ行のプレフィックスインデックスとして使用しています。データが VARCHAR タイプの場合、プレフィックスインデックスは切り捨てられます。例:

  1. 次のスキーマのプレフィックスインデックスは、user_id(8 バイト)+age(4 バイト)+message(プレフィックス 20 バイト) です。

    列名

    タイプ

    user_id

    BIGINT

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

    プレフィックスインデックスのプレフィックスがクエリ条件として指定されている場合、クエリを高速化できます。次のクエリ文を実行します。

    例 1:

    SELECT * FROM table WHERE user_id=1829239 and age=20;

    例 2:

    SELECT * FROM table WHERE age=20;

    例 1 のクエリ速度は、例 2 よりもはるかに高速です。テーブルを作成するときに、列を正しい順序でソートして、クエリ効率を向上させることができます。

  2. 次のスキーマのプレフィックスインデックスは、user_name(20 バイト) です。データが VARCHAR タイプであるため、プレフィックスインデックスには 36 バイトが含まれず、切り捨てられます。

    列名

    タイプ

    user_name

    VARCHAR(20)

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

マテリアライズドビューを使用したプレフィックスインデックスの変更

テーブルの列は、テーブルの作成時に指定された順序でソートされます。したがって、テーブルにはプレフィックスインデックスが 1 つだけあります。プレフィックスインデックスにヒットできない列に基づいてデータをクエリする場合、クエリ効率がビジネス要件を満たせない可能性があります。マテリアライズドビューを作成して、列の順序を変更できます。詳細については、「マテリアライズドビュー」をご参照ください。