La cultura de la obsesión por el rendimiento en las bases de datos
- La industria de las bases de datos está enfocada en mejorar el rendimiento, pero la experiencia real del usuario suele verse afectada por otros factores.
- Al procesar datos, lo que realmente importa para el usuario puede ser más la forma de los datos o la capacidad de formular preguntas en SQL que la optimización de consultas.
- El rendimiento de la base de datos es importante, pero puede ser mejor elegir una base de datos con base en otros factores como la facilidad de uso, el ecosistema, la velocidad de actualización y la integración con el flujo de trabajo.
El fin de la guerra de benchmarks
- En 2019, GigaOm publicó un benchmark comparando data warehouses en la nube, pero los resultados reales del mercado mostraron un panorama distinto.
- Cuando los resultados de un benchmark no coinciden con la experiencia del usuario, eso sugiere que el benchmark estaba mal, que probó lo incorrecto o que el rendimiento quizá no era tan importante.
Qué significa ser rápido
- En el ámbito de las bases de datos en la nube, existe la tendencia de enfocarse en el tiempo entre que el usuario hace clic en el botón de "ejecutar" y el momento en que el resultado está listo.
- Lo que realmente afecta al usuario es el tiempo que tarda en completar el trabajo, y eso no es lo mismo que el tiempo del servidor de base de datos.
El rendimiento es subjetivo
- El rendimiento debe medirse desde la perspectiva del usuario y, como problema de UX, no puede explicarse con un solo número.
- La subjetividad del rendimiento implica que cuál sistema es más rápido depende de cómo se use la base de datos.
La velocidad del cambio
- DuckDB está mejorando a gran velocidad, y eso vuelve irrelevantes los benchmarks actuales.
- Al elegir una base de datos, no solo importa el rendimiento actual, sino también cómo cambiarán en el futuro el rendimiento y las funcionalidades.
No hay frijol mágico
- Si todas las bases de datos se mantienen activamente, el rendimiento terminará convergiendo con el tiempo.
- Es poco probable que diferencias importantes de rendimiento se mantengan de forma duradera con el paso del tiempo.
El problema está entre la silla y el teclado, y entre el teclado y la base de datos
- La métrica de rendimiento que importa al usuario es cuánto tarda en pasar de una pregunta a una respuesta.
- La capacidad importante no es cuánto tarda la base de datos en ejecutar una consulta, sino la velocidad para pasar de una idea a una respuesta.
Sobre las uvas agrias
- DuckDB actualmente está entre los primeros lugares en los benchmarks de ClickBench y h20.ai, y también muestra un rendimiento nada malo en TPC-H y TPC-DS.
- Antes de asumir que una base de datos es rápida, es importante probarla con la carga de trabajo real.
Conclusión
- Las empresas de bases de datos más exitosas no triunfaron por tener un rendimiento más rápido que sus competidores.
- Las bases de datos que usaron el rendimiento como principal argumento de venta no tuvieron éxito en el mercado.
- Se aconseja decidir una base de datos con base en otros factores además de la velocidad bruta.
Opinión de GN⁺
- Este artículo subraya que no basta con enfocarse solo en el rendimiento de la base de datos, sino que también es importante optimizar la experiencia del usuario y el flujo de trabajo. Esto deja una lección importante incluso para ingenieros de software junior: al elegir una base de datos, conviene considerar un enfoque centrado en el usuario más allá de métricas simples de rendimiento.
- El rendimiento de las bases de datos tiende a converger con el tiempo, porque los avances tecnológicos terminan difundiéndose entre todas las plataformas. Esto sugiere que, al elegir tecnología, conviene considerar más el soporte a largo plazo y el potencial de mejora que el rendimiento de corto plazo.
- Proyectos open source como DuckDB pueden evolucionar rápidamente gracias a su ritmo de mejora y al apoyo de la comunidad. Esto implica que, al adoptar una nueva tecnología, también conviene evaluar qué tan activa es su comunidad y qué tan rápido avanza el proyecto.
- Al elegir una base de datos, es importante no depender solo de los resultados de benchmarks de rendimiento, sino probar su desempeño con cargas de trabajo reales. Eso puede ayudar a seleccionar una base de datos más adecuada para los casos de uso concretos.
- Se enfatiza que la elección de una tecnología de base de datos debe considerar no solo aspectos técnicos, sino también requisitos de negocio, facilidad de mantenimiento y eficiencia en el procesamiento de datos, entre muchos otros factores.
1 comentarios
Opiniones de Hacker News
dictde Python y lo volcaba al disco cada pocos minutos. Tenía una API muy rápida, pero cuando se migró a MongoDB el rendimiento nunca se recuperó. Aun así, hoy en día nadie elegiríapickledbpara crear un sitio web.