Bancos de Dados, Cache e Persistência
15/05/2023
A escolha entre ORM, Query Builder e SQL puro não é binária — existe um espectro contínuo de abstração. No extremo esquerdo, o SQL puro oferece controle total sobre cada caractere da consulta, performance crua e riscos elevados de injeção se mal parametrizado. No centro, o Query Builder (Knex.js, SQLAlchemy Core, PyPika) fornece segurança contra injeção com uma sintaxe programática que ainda expõe a estrutura SQL. No extremo direito, ORMs completos (Hibernate, Entity Framework, Django ORM, Prism
Bancos de Dados, Cache e Persistência
06/05/2023
ClickHouse é um banco de dados colunar projetado para processamento analítico online (OLAP). Enquanto bancos relacionais tradicionais armazenam dados linha por linha, o ClickHouse armazena cada coluna em blocos separados. Isso transforma consultas que varrem milhões de linhas: em vez de ler dados desnecessários de colunas não utilizadas, o banco lê apenas as colunas relevantes.
Bancos de Dados, Cache e Persistência
04/05/2023
O Prisma ORM conquistou seu espaço no ecossistema Node.js principalmente por oferecer type safety de ponta a ponta. Quando você define um modelo no schema.prisma, o cliente gerado automaticamente reflete exatamente os tipos do banco de dados. Isso elimina uma classe inteira de bugs de runtime que assombram ORMs tradicionais como Sequelize ou TypeORM.
Bancos de Dados, Cache e Persistência
13/04/2023
Em times grandes, múltiplos desenvolvedores trabalham simultaneamente em diferentes branches. O uso de numeração sequencial para migrations (ex: 001_create_users.sql, 002_add_email.sql) gera conflitos frequentes quando duas pessoas criam a migration 003 ao mesmo tempo. Dependências implícitas entre migrations — como uma migration que referencia uma coluna criada em outra — também causam quebras silenciosas. Alterações simultâneas no mesmo schema (ex: dois times modificando a tabela orders) levam