View a markdown version of this page

Trabajo con planes EXPLAIN de Aurora DSQL - Amazon Aurora DSQL

Trabajo con planes EXPLAIN de Aurora DSQL

Aurora DSQL utiliza una estructura de plan EXPLAIN similar a la de PostgreSQL, pero con adiciones clave que reflejan su arquitectura distribuida y su modelo de ejecución.

En esta documentación, proporcionaremos información general de los planes EXPLAIN de Aurora DSQL y destacaremos las similitudes y diferencias en comparación con PostgreSQL. Cubriremos los distintos tipos de operaciones de escaneo disponibles en Aurora DSQL y lo ayudaremos a comprender el costo de ejecutar las consultas.

Planes EXPLAIN de PostgreSQL frente a Aurora DSQL

Aurora SQL se basa en la base de datos de PostgreSQL y comparte la mayoría de las estructuras planificadas con PostgreSQL, pero presenta diferencias arquitectónicas clave que afectan a la ejecución y optimización de las consultas:

Característica PostgreSQL Aurora DSQL

Almacenamiento de datos

Almacenamiento de montón

Sin montón, todas las filas están indexadas por un identificador único

Clave principal

El índice de clave principal está separado de los datos de la tabla

El índice de clave principal es la tabla con todas las columnas adicionales como columnas INCLUDE

Índices secundarios

Índices secundarios estándar

Funciona igual que PostgreSQL, con la posibilidad de incluir columnas no clave

Capacidades de filtrado

Condición de índice, filtro de montón

Condición de índice, filtro de almacenamiento, filtro de procesador de consultas

Tipos de exámenes

Escaneo secuencial, escaneo de índice, escaneo solo de índice

Escaneo completo, escaneo solo de índice, escaneo de índice

Ejecución de consulta

Local en la base de datos

Distribuido (el procesamiento y el almacenamiento son independientes)

Aurora DSQL almacena los datos de la tabla directamente en orden de clave principal en lugar de en un montón independiente. Cada fila se identifica mediante una clave única, normalmente la clave principal, que permite a la base de datos optimizar las búsquedas de manera más eficiente. La diferencia arquitectónica explica por qué Aurora DSQL suele utilizar escaneos solo de índice en los casos en que PostgreSQL puede elegir un escaneo secuencial.

Otra distinción clave es que Aurora DSQL separa la informática del almacenamiento, lo que permite aplicar filtros en una fase más temprana de la ruta de ejecución para reducir el movimiento de datos y mejorar el rendimiento.

Para obtener más información sobre el uso de los planes EXPLAIN con PostgreSQL, consulte la documentación EXPLAIN de PostgreSQL.

Elementos clave de los planes EXPLAIN de Aurora DSQL

Los planes EXPLAIN de Aurora DSQL proporcionan información detallada sobre cómo se ejecutan las consultas, incluido dónde se produce el filtrado y qué columnas se recuperan del almacenamiento. La comprensión de este resultado ayuda a optimizar el rendimiento de las consultas.

Condición de índice

Condiciones utilizadas para navegar por el índice. El filtrado más eficiente que reduce los datos escaneados. En Aurora DSQL, las condiciones de índice se pueden aplicar en varios niveles del plan de ejecución.

Proyecciones

Columnas recuperadas del almacenamiento. Menos proyecciones significan un mejor rendimiento.

Filtro de almacenamiento

Condiciones aplicadas por almacenamiento. Más eficiente que los filtros del procesador de consultas.

Filtro de procesador de consultas

Condiciones aplicadas por procesador de consultas. Requiere transferir todos los datos antes de filtrarlos, lo que se traduce en una mayor sobrecarga de procesamiento y movimiento de datos.

Filtros en Aurora DSQL

Aurora DSQL separa la informática del almacenamiento, lo que significa que el punto en el que se aplican los filtros durante la ejecución de la consulta tiene un impacto significativo en el rendimiento. Los filtros que se aplican antes de transferir grandes volúmenes de datos reducen la latencia y mejoran la eficiencia. Cuanto antes se aplique un filtro, menos datos deberán procesarse, moverse y escanearse, lo que se traducirá en consultas más rápidas.

Aurora DSQL puede aplicar filtros en varias etapas de la ruta de consulta. la comprensión de estas etapas es clave para interpretar los planes de consultas y optimizar el rendimiento.

Nivel Tipo de filtro Descripción
1 Condición de índice

Se aplica al escanear el índice. Limita la cantidad de datos que se leen del almacenamiento y reduce los datos que se envían a la capa de procesamiento.

2 Filtro de almacenamiento Se aplica después de leer los datos del almacenamiento, pero antes de enviarlos a informática. Un ejemplo de esto es un filtro en una columna de inclusión de un índice. Reduce la transferencia de datos, pero no la cantidad leída.
3 Filtro de procesador de consultas Se aplica después de que los datos lleguen a la capa de informática. Todos los datos se deben transferir primero, lo que aumenta la latencia y el costo. Actualmente, Aurora DSQL no puede realizar todas las operaciones de filtrado y proyección en el almacenamiento, por lo que es posible que algunas consultas se vean obligadas a recurrir a este tipo de filtrado.