Sirviendo Código

Gonzalo Ortiz Jaureguizar - Tus queries son lentas y (probablemente) es culpa tuya

2 de julio de 2026Datacommitconfdata

Como desarrolladores, todos hemos pasado por esto: escribes una consulta SQL que parece perfectamente limpia y correcta, pero se ejecuta con una lentitud inesperada. Revisas el plan de ejecución y descubres que la base de datos ha elegido un camino totalmente ineficiente que no esperabas. Este es un problema común en todas las bases de datos (Postgres, Mongo...), pero es aún peor en las distribuidas. Apache Pinot es una base de datos OLAP distribuida que puede ejecutar expresiones SQL complejas (incluidas funciones de ventana y JOINs) en milisegundos sobre miles de millones de filas. Para ello, su optimizador aplica complejas transformaciones relacionales, pero desconoce las invariantes de negocio que solo los desarrolladores (y a veces, ni siquiera ellos) conocen. Esto significa que una función aparentemente inofensiva, un inocente OFFSET o LIMIT, las una columna que sólo tú sabes que nunca es NULL, o un ligero cambio en una condición de JOIN pueden forzar, sin que nos demos cuenta, al motor a abandonar optimizaciones muy potentes. Para empeorar las cosas, los ORMs como Hibernate son famosos por generar consultas que caen exactamente en estas trampas. Aunque esta charla usa Apache Pinot para sus ejemplos, los conceptos se aplican a otras bases de datos SQL y NoSQL como MongoDB, Postgres o ClickHouse. Usando ejemplos concretos, demostraré cómo consultas aparentemente equivalentes pueden producir planes de ejecución radicalmente diferentes. Saldrás de esta charla armado con el conocimiento para detectar estos "asesinos de optimizaciones" y crear consultas amigables con tu base de datos, asegurando que tus analíticas sean siempre tan rápidas como sea posible.

Vídeos relacionados