Tous les produits
Search
Centre de documentation

ApsaraDB for SelectDB:Présentation des index

Dernière mise à jour :Aug 11, 2026

Cette rubrique décrit les index intelligents intégrés de ApsaraDB for SelectDB et leur utilisation.

Informations générales

Les index permettent de filtrer ou d'interroger rapidement les données. ApsaraDB for SelectDB prend en charge les types d'index suivants :

Index zone map

L'index zone map regroupe les informations d'indexation générées automatiquement pour chaque colonne du stockage orienté colonne, incluant les valeurs minimales, maximales et le nombre de valeurs NULL. ApsaraDB for SelectDB crée et gère ces index automatiquement.

Index de préfixe

Contrairement aux bases de données traditionnelles, ApsaraDB for SelectDB est une base de données OLAP (traitement analytique en ligne) reposant sur une architecture MPP (traitement massivement parallèle). Elle traite de grands volumes de données grâce à une forte concurrence et exploite les schémas d'index pour accélérer les requêtes.

Dans ApsaraDB for SelectDB, les données adoptent une structure similaire à la SSTable (Sorted String Table). Cette structure ordonnée trie et stocke les données selon des colonnes spécifiques, ce qui permet d'interroger efficacement les données via les colonnes de tri.

Pour les modèles de clés Aggregate, Unique et Duplicate, le stockage sous-jacent trie et conserve les données selon les colonnes définies dans les instructions AGGREGATE KEY, UNIQUE KEY et DUPLICATE KEY lors de la création des tables. L'index de préfixe permet ensuite d'accélérer les requêtes basées sur les colonnes de préfixe spécifiées après le tri.

Exemples

L'exemple suivant utilise les 36 premiers octets d'une ligne de données comme index de préfixe. Les index de préfixe sont tronqués lorsque les données sont de type VARCHAR. Exemple :

  1. Pour le schéma ci-dessous, l'index de préfixe correspond à user_id (8 octets) + age (4 octets) + message (préfixe de 20 octets).

    ColumnName

    Type

    user_id

    BIGINT

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

    Spécifier le préfixe de l'index comme condition de requête permet d'accélérer cette dernière. Exécutez les instructions suivantes :

    Exemple 1 :

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

    Exemple 2 :

    SELECT * FROM table WHERE age=20;

    La requête de l'exemple 1 s'exécute beaucoup plus rapidement que celle de l'exemple 2. Lors de la création d'une table, triez les colonnes dans l'ordre approprié pour améliorer l'efficacité des requêtes.

  2. Dans le schéma suivant, l'index de préfixe correspond à user_name (20 octets). Comme les données sont de type VARCHAR, l'index ne contient pas 36 octets et se trouve tronqué.

    ColumnName

    Type

    user_name

    VARCHAR(20)

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

Modifier un index de préfixe à l'aide d'une vue matérialisée

Les colonnes d'une table étant triées selon un ordre défini lors de sa création, une table ne possède qu'un seul index de préfixe. Si vos requêtes portent sur des colonnes non couvertes par cet index, les performances risquent de ne pas répondre à vos exigences métier. Créez alors une vue matérialisée pour modifier l'ordre des colonnes. Pour plus d'informations, consultez Vue matérialisée synchrone.