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.
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 |
|
|
|
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 |
|
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. |
|
|
|
Recomendado para otimizar consultas complexas, repetitivas e demoradas. |
Para obter mais informações, consulte Visualização materializada síncrona. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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:
|
|
|
|
|
|
|