DIFF: un operador relacional para explicar datos a gran escala

Un equipo de investigadores de Stanford, Microsoft, Facebook y Google presenta DIFF, un operador relacional que integra la funcionalidad de los motores de explicación de datos dentro de flujos de trabajo SQL tradicionales. Los motores de explicación, como MacroBase, Scorpion o Data X-Ray, ayudan a l

Cómo construir un optimizador SQL con Egg y Rust

Un equipo de la comunidad RisingLight ha desarrollado un optimizador SQL didáctico en Rust utilizando el framework Egg, una biblioteca de reescritura de expresiones basada en equality saturation y e-graphs. El proyecto, disponible en el repositorio 'sql-optimizer-labs', contiene menos de mil líneas

DuckDB incorporará E/S asíncrona en lectura de Parquet y CSV a partir de v2.0

DuckDB prepara su mayor salto arquitectónico en años: a partir de la versión 2.0, prevista para otoño de 2026, el motor de bases de datos analíticas incorporará E/S asíncrona de forma predeterminada para la lectura de archivos Parquet y CSV, una mejora que promete acelerar de forma significativa las

Cómo paginar un archivo Parquet en DuckDB sin perder filas ni velocidad

Cuando una API tiene que devolver el contenido de un archivo Parquet muy grande y las respuestas están limitadas en tamaño —por ejemplo, 6 MB en AWS Lambda o 32 MiB en Cloud Run—, lo habitual es paginar con LIMIT y OFFSET. Pero esa forma de escribir la consulta es la equivocada. DuckDB ofrece la opc

Guía completa de los índices B-Tree en PostgreSQL: Parte 1

Esta primera entrega de una serie ofrece una inmersión técnica en el funcionamiento interno de los índices B-Tree de PostgreSQL, la estructura más utilizada para acelerar consultas en tablas grandes. El artículo comienza explicando que PostgreSQL dispone de seis tipos de índices —B-tree, Hash, GiST,

Particionado de tablas que no exige vigilancia constante

Particionar una tabla por una columna como created_at parece una decisión de almacenamiento inocua, pero termina filtrándose hacia el código de aplicación y las consultas. El artículo explica por qué ocurre esto y propone un diseño que elimina la fuga. El problema central es doble. Primero, las bas

Orden de evaluación y no terminación en lenguajes de consulta

En una charla reciente en FLOPS, el autor presentó λFS (lambda finite set), un modelo que combina programación funcional con programación relacional al estilo de Datalog y SQL, además de álgebra tensorial. En λFS, una relación se modela como una función finita representada internamente como una tabl

Por qué DuckDB es tan rápida: claves de su diseño interno

DuckDB es una base de datos SQL analítica en proceso que se ha convertido, desde su origen como proyecto de investigación del CWI de Ámsterdam en 2019, en uno de los motores analíticos mononodo más usados y más rápidos del momento. Se distribuye como un binario único de menos de 20 MB, se instala co

PostgreSQL 12: CTEs Ahora Optimizan Consultas

Una actualización significativa en PostgreSQL 12 eliminó la barrera de optimización que antes imponían las Expresiones de Tabla Comunes (CTE). Anteriormente, en versiones anteriores a la 12, las CTEs obligaban a la base de datos a materializar los resultados, impidiendo que el optimizador viera a tr

Postgres y Top K: ¿Hay una mejor forma?

Este artículo de paradedb.com explora las limitaciones de PostgreSQL al optimizar consultas 'Top K' (obtener los K mejores registros ordenados por un criterio) y cómo bases de datos especializadas como ParadeDB abordan este problema de manera diferente. ¿Qué es Top K y por qué es importante? Top K