Todos os produtos
Search
Central de documentação

ApsaraDB for SelectDB:Visão geral de índices

Última atualização: Jul 08, 2026

Este tópico descreve os índices inteligentes integrados do ApsaraDB for SelectDB e como usá-los.

Informações básicas

Os índices permitem filtrar ou consultar dados rapidamente. O ApsaraDB for SelectDB oferece suporte aos seguintes tipos de índice:

Índice de mapa de zona

O índice de mapa de zona contém as informações mantidas automaticamente para cada coluna no formato de armazenamento orientado a colunas, incluindo valores mínimos (Min), máximos (Max) e a quantidade de valores NULL. O ApsaraDB for SelectDB cria e mantém esses índices automaticamente.

Índice de prefixo

O ApsaraDB for SelectDB difere dos bancos de dados tradicionais. Trata-se de um banco de dados de processamento analítico online (OLAP) que usa arquitetura de processamento massivamente paralelo (MPP) para lidar com grandes volumes de dados mediante aumento da concorrência. Além disso, o ApsaraDB for SelectDB pode operar em conjunto com esquemas de índice para acelerar consultas.

Os dados no ApsaraDB for SelectDB residem em uma estrutura semelhante a uma tabela de strings ordenadas (SSTable). Essa estrutura ordenada classifica e armazena dados com base em colunas especificadas, permitindo consultas eficientes pelas colunas de classificação.

Nos modelos de chave Aggregate, Unique e Duplicate, o armazenamento subjacente classifica e organiza os dados conforme as colunas definidas nas instruções AGGREGATE KEY, UNIQUE KEY e DUPLICATE KEY usadas na criação das tabelas. Após a classificação, o índice de prefixo viabiliza consultas rápidas com base nas colunas de prefixo indicadas.

Exemplos

O exemplo a seguir usa os primeiros 36 bytes de uma linha de dados como índice de prefixo. Se os dados forem do tipo VARCHAR, o índice de prefixo será truncado. Exemplo:

  1. Neste esquema, o índice de prefixo corresponde a user_id(8 Bytes)+age(4 Bytes)+message(prefixo de 20 Bytes).

    ColumnName

    Type

    user_id

    BIGINT

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

    Especifique o prefixo do índice de prefixo como condição de busca para acelerar a consulta. Execute as seguintes instruções de consulta:

    Exemplo 1:

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

    Exemplo 2:

    SELECT * FROM table WHERE age=20;

    A velocidade da consulta no Exemplo 1 é significativamente superior à do Exemplo 2. Ao criar uma tabela, ordene as colunas corretamente para melhorar a eficiência das consultas.

  2. No esquema abaixo, o índice de prefixo é user_name(20 Bytes). Como os dados são do tipo VARCHAR, o índice não atinge 36 bytes e sofre truncamento.

    ColumnName

    Type

    user_name

    VARCHAR(20)

    age

    INT

    message

    VARCHAR(100)

    max_dwell_time

    DATETIME

    min_dwell_time

    DATETIME

Modifique um índice de prefixo usando uma materialized view

As colunas de uma tabela seguem uma ordem específica durante a criação, portanto, cada tabela possui apenas um índice de prefixo. Se as consultas usarem colunas que não acionam esse índice, a eficiência pode ficar abaixo dos requisitos do negócio. Nesse caso, crie uma materialized view para alterar a ordem das colunas. Para mais detalhes, consulte Materialized view síncrona.