View a markdown version of this page

Trabalhar com os planos EXPLAIN do Aurora DSQL - Amazon Aurora DSQL

Trabalhar com os planos EXPLAIN do Aurora DSQL

O Aurora DSQL usa uma estrutura de plano EXPLAIN semelhante à do PostgreSQL, mas com adições importantes que refletem a respectiva arquitetura distribuída e modelo de execução.

Nesta documentação, forneceremos uma visão geral dos planos EXPLAIN do Aurora DSQL, destacando as semelhanças e diferenças em comparação ao PostgreSQL. Abordaremos os vários tipos de operações de verificação disponíveis no Aurora DSQL e ajudaremos você a entender o custo da realização de suas consultas.

Planos EXPLAIN do PostgreSQL versus Aurora DSQL

O Aurora SQL é desenvolvido com base no banco de dados PostgreSQL e compartilha a maioria das estruturas de planos com o PostgreSQL, mas tem diferenças arquitetônicas importantes que afetam a realização e a otimização de consultas:

Recurso PostgreSQL Aurora DSQL

Armazenamento de dados

Armazenamento heap

Sem heap, todas as linhas são indexadas por um identificador exclusivo.

Chave primária

O índice da chave primária é separado dos dados da tabela.

O índice da chave primária é a tabela com todas as colunas extras como colunas INCLUDE.

Índices secundários

Índices secundários padrão.

Funciona da mesma forma que o PostgreSQL, com a capacidade de incluir colunas que não sejam chave.

Recursos de filtragem

Condição de índice, filtro heap.

Condição de índice, filtro de armazenamento, filtro do processador de consultas.

Tipos de varredura

Verificação sequencial, verificação de índice, Verificação somente de índice.

Verificação sequencial, verificação de índice, Verificação somente de índice.

Realização de consultas

Local para o banco de dados.

Distribuído (computação e armazenamento são separados).

O Aurora DSQL armazena os dados da tabela diretamente na ordem da chave primária, em vez de em um heap separado. Cada linha é identificada por uma chave exclusiva, normalmente a chave primária, que permite que o banco de dados otimize as pesquisas com maior eficiência. A diferença arquitetônica explica por que o Aurora DSQL geralmente usa verificações somente de índice nos casos em que o PostgreSQL pode escolher a verificação sequencial.

Outra distinção importante é que o Aurora DSQL separa a computação do armazenamento, permitindo que os filtros sejam aplicados mais cedo no caminho de execução a fim de reduzir a movimentação de dados e melhorar a performance.

Para saber mais sobre o uso dos planos EXPLAIN com o PostgreSQL, consulte a documentação sobre o EXPLAIN do PostgreSQL.

Elementos-chave nos planos EXPLAIN do Aurora DSQL

Os planos EXPLAIN do Aurora DSQL fornecem informações detalhadas sobre como as consultas são realizadas, incluindo onde a filtragem ocorre e quais colunas são recuperadas do armazenamento. A compreensão dessa saída ajuda a otimizar a performance da consulta.

Condição de índice

Condições usadas para navegar no índice. A filtragem mais eficiente que reduz os dados verificados. No Aurora DSQL, as condições de índice podem ser aplicadas em várias camadas do plano de execução.

Projeções

Colunas recuperadas do armazenamento. Um menor número de projeções significa melhor performance.

Filtros de armazenamento

Condições aplicadas em nível de armazenamento. Mais eficiente do que os filtros do processador de consultas.

Filtros do processador de consultas

Condições aplicadas em nível de processador de consultas. Requer a transferência de todos os dados antes da filtragem, o que causa maior movimentação de dados e sobrecarga de processamento.

Filtros no Aurora DSQL

O Aurora DSQL separa a computação do armazenamento, o que significa que o ponto em que os filtros são aplicados durante a realização da consulta tem um impacto significativo na performance. Os filtros aplicados antes da transferência de grandes volumes de dados reduzem a latência e melhoram a eficiência. Quanto mais cedo um filtro for aplicado, menos dados precisarão ser processados, movidos e verificados, gerando consultas mais rápidas.

O Aurora DSQL pode aplicar filtros em vários estágios no caminho da consulta. Compreender esses estágios é fundamental para interpretar os planos de consulta e otimizar a performance.

Nível Tipo de filtro Descrição
1 Condição de índice

Aplicado durante a verificação do índice. Limita o volume de dados lidos do armazenamento e reduz os dados enviados à camada de computação.

2 Filtros de armazenamento Aplicado depois que os dados são lidos do armazenamento, mas antes de serem enviados à computação. Um exemplo aqui é um filtro em uma coluna de inclusão de um índice. Reduz a transferência de dados, mas não a quantidade lida.
3 Filtros do processador de consultas Aplicado após os dados chegarem à camada computacional. Todos os dados devem ser transferidos primeiro, o que aumenta a latência e o custo. Atualmente, o Aurora DSQL não pode realizar todas as operações de filtragem e projeção no armazenamento, portanto, algumas consultas podem ser forçadas a recorrer a esse tipo de filtragem.