Todos os produtos
Search
Central de documentação

ApsaraDB for SelectDB:Visão geral da aceleração de consultas

Última atualização: Jul 08, 2026

ApsaraDB for SelectDB utiliza o otimizador Nereids e o mecanismo de execução Pipeline para otimizar consultas automaticamente. Para atender a requisitos de consultas de alto desempenho, otimize as consultas manualmente. Por exemplo, use aceleração baseada em índice, consultas pontuais de alta concorrência, visualizações materializadas e otimização de junção.

Planejamento automático de otimização de consultas

No SelectDB, o otimizador Nereids e o mecanismo de execução Pipeline são tecnologias essenciais de processamento que permitem otimizações profundas nas fases de planejamento e execução. Essas tecnologias melhoram significativamente o desempenho de consultas complexas e o uso de recursos. A figura a seguir ilustra como elas otimizam uma instrução SQL no SelectDB.

image

A tabela a seguir descreve os principais recursos de cada tecnologia. Para obter mais informações, consulte a documentação relevante.

Tecnologia

Descrição do recurso

Nereids

  • Oferece suporte a consultas complexas, como subconsultas aninhadas em vários níveis e junções de várias tabelas.

  • Reduz a probabilidade de erros lógicos nas regras de otimização.

Pipeline execution engine

  • Melhora a utilização da CPU.

  • Mitiga a contenção de recursos entre consultas grandes e pequenas.

Otimização manual de consultas

Caso o otimizador Nereids e o mecanismo de execução Pipeline do SelectDB não atendam aos seus requisitos, utilize estatísticas para analisar os dados da consulta e selecione uma política adequada para otimização.

Política de otimização

Cenário

Limite

Consultas pontuais de alta concorrência

Indicado para otimizar consultas pontuais de alta concorrência.

Nota

Uma consulta pontual recupera um pequeno volume de dados de um banco de dados com base em condições específicas. Geralmente, chaves primárias ou colunas de alta cardinalidade realizam essa recuperação.

  • Habilitar o modo de armazenamento de linha consome armazenamento adicional.

  • PreparedStatement oferece suporte apenas a consultas pontuais baseadas em chave primária.

Visualização materializada síncrona

Recomendado para otimizar consultas complexas, repetitivas e demoradas.

  • Em tabelas com o modelo Unique Key, visualizações materializadas podem alterar a ordem das colunas, mas não funcionam como funções de agregação. Portanto, não é possível crie visualizações materializadas nesse modelo para executar operações de agregação de granularidade grossa.

  • Crie um número excessivo de visualizações materializadas em uma tabela afeta a eficiência da importação de dados.

Para obter mais informações, consulte Visualização materializada síncrona.

Aceleração baseada em índice

Use para consultar ou localizar dados rapidamente em qualquer cenário.

Os limites variam conforme o tipo de índice. Para obter mais informações, consulte Aceleração baseada em índice.

Bucket Shuffle Join

Projetado para otimizar consultas de junção.

A condição de junção deve conter a coluna de distribuição da tabela esquerda, e a tabela esquerda deve usar dados de apenas uma partição durante a execução.

Colocation Join

Alternativa para otimizar consultas de junção.

A condição de junção deve conter a coluna de distribuição da tabela esquerda, e ambas as tabelas (esquerda e direita) devem pertencer ao mesmo Colocate Group.

Runtime filter

Otimiza a junção de uma tabela grande com uma tabela pequena.

Ao usar um Runtime filter, a instrução JOIN deve atender aos seguintes requisitos:

  • A tabela esquerda é grande e a direita é pequena. Crie um Runtime filter gera custos de computação, incluindo sobrecarga de memória.

  • O conjunto de resultados da junção é pequeno. Um conjunto de resultados pequeno indica que a instrução JOIN filtra a maior parte dos dados da tabela esquerda.

Deduplicação precisa com BITMAP

  • Resultados de deduplicação devem ser precisos e envolver milhões de registros.

  • Recursos de armazenamento suficientes estão disponíveis.

  • Limites de tipos de dados:

    • Tipos inteiros TINYINT, SMALLINT, INT e BIGINT têm uso direto.

    • Valores não inteiros, como strings, podem ser usados após serem mapeados para inteiros por meio de um dicionário global. Isso aumenta os custos de manutenção.

  • Limites de memória: Alta cardinalidade de dados (bilhões de registros) exige que o Bitmap armazene um grande array de bits. Isso aumenta significativamente o uso de memória e pode causar insuficiência de recursos.

Deduplicação aproximada usando o recurso HLL

  • Processamento de grandes volumes de dados (bilhões de registros) com margem de erro aceitável nos resultados (por exemplo, métricas analíticas aproximadas).

  • Mesclagem eficiente de resultados em sistemas distribuídos.

  • Perda de precisão: Resultados exatos são inatingíveis. A taxa de erro diminui à medida que a cardinalidade dos dados aumenta (quanto maior a cardinalidade, menor a taxa de erro relativa).

  • Configuração adequada de parâmetros: A precisão do HyperLogLog (HLL) depende de parâmetros como o número de registradores e bits de hash. Configurações inadequadas afetam a precisão do resultado.