A cultura de obsessão por desempenho em bancos de dados
- A indústria de bancos de dados está focada em melhorar o desempenho, mas a experiência real do usuário muitas vezes é afetada por outros fatores.
- Para o usuário processar dados, o que realmente importa pode ser o formato dos dados ou a capacidade de formular perguntas em SQL, mais do que a otimização de consultas.
- O desempenho do banco de dados é importante, mas pode ser melhor escolher um banco com base em outros fatores, como facilidade de uso, ecossistema, velocidade de atualização e integração com o fluxo de trabalho.
O fim da guerra dos benchmarks
- Em 2019, a GigaOm publicou um benchmark comparando data warehouses em nuvem, mas o resultado real do mercado mostrou um cenário diferente.
- Quando os resultados de benchmark não coincidem com a experiência do usuário, isso sugere que o benchmark estava errado, testou a coisa errada ou que o desempenho pode não ser tão importante assim.
O significado de ser rápido
- No setor de bancos de dados em nuvem, há uma tendência de focar no tempo entre o usuário clicar no botão “executar” e o resultado ficar pronto.
- O que realmente afeta o usuário é o tempo necessário para concluir o trabalho, e isso não é o mesmo que o tempo do servidor de banco de dados.
Desempenho é subjetivo
- O desempenho deve ser medido do ponto de vista do usuário e, por ser uma questão de UX, não pode ser explicado por um único número.
- A subjetividade do desempenho significa que o que é mais rápido depende de como o banco de dados é usado.
A velocidade da mudança
- O DuckDB está melhorando em ritmo acelerado, o que torna os benchmarks atuais sem muito sentido.
- Ao escolher um banco de dados, não só o desempenho atual, mas também as mudanças futuras em desempenho e funcionalidades são variáveis importantes.
Não existe feijão mágico
- Se todos os bancos de dados estiverem sendo mantidos ativamente, o desempenho vai convergir com o tempo.
- É pouco provável que diferenças importantes de desempenho se mantenham ao longo do tempo.
O problema está entre a cadeira e o teclado, e entre o teclado e o banco de dados
- A métrica de desempenho que importa para o usuário é o tempo que leva para chegar com uma pergunta e obter uma resposta.
- A funcionalidade importante não é quanto tempo o banco leva para executar a consulta, mas sim a velocidade de ir da ideia à resposta.
Sobre uvas azedas
- O DuckDB atualmente está entre os líderes nos benchmarks ClickBench e h20.ai, e também apresenta um desempenho razoável em TPC-H e TPC-DS.
- Antes de assumir que um banco de dados é rápido, é importante testá-lo na carga de trabalho real.
Conclusão
- As empresas de banco de dados mais bem-sucedidas não tiveram sucesso por serem mais rápidas que as concorrentes.
- Bancos de dados que usaram desempenho como principal argumento de venda não tiveram sucesso no mercado.
- Ao escolher um banco de dados, a recomendação é decidir com base em outros fatores além da velocidade bruta.
Opinião do GN⁺
- Este artigo enfatiza que não basta focar apenas no desempenho do banco de dados; também é importante otimizar a experiência do usuário e o fluxo de trabalho. Isso traz uma lição importante até para engenheiros de software iniciantes: ao escolher um banco de dados, vale mais considerar uma abordagem centrada no usuário do que se guiar apenas por métricas simples de desempenho.
- O desempenho de bancos de dados tende a convergir com o tempo, porque os avanços tecnológicos acabam se espalhando por todas as plataformas. Isso sugere que, ao fazer escolhas tecnológicas, é melhor considerar suporte de longo prazo e potencial de melhoria do que desempenho de curto prazo.
- Projetos open source como o DuckDB podem evoluir rapidamente com base no ritmo de melhoria e no apoio da comunidade. Isso significa que, ao adotar uma nova tecnologia, é importante considerar o nível de atividade da comunidade e a velocidade de evolução do projeto.
- Ao escolher um banco de dados, é importante não depender apenas dos resultados de benchmarks de desempenho, mas também testar o desempenho na carga de trabalho real. Isso pode ajudar a selecionar um banco mais adequado aos casos de uso reais.
- A escolha de uma tecnologia de banco de dados deve considerar não apenas aspectos técnicos, mas também diversos fatores como necessidades de negócio, facilidade de manutenção e eficiência no processamento de dados.
1 comentários
Comentários do Hacker News
dictdo Python e despejava isso em disco a cada poucos minutos. A API era muito rápida, mas quando migrei para o MongoDB o desempenho nunca se recuperou. Ainda assim, hoje eu não escolheriapickledbpara criar um site.