Categoria

SQL + Banco de Dados

Projeto final: modelagem e otimização de um banco de dados de e-commerce
SQL + Banco de Dados

Projeto final: modelagem e otimização de um banco de dados de e-commerce

O primeiro passo para construir um banco de dados robusto de e-commerce é identificar as entidades fundamentais e seus relacionamentos. As principais entidades são: cliente, produto, pedido, estoque e pagamento. Cada uma possui atributos específicos e se relaciona com as demais através de cardinalidades bem definidas.

05/05/2026
Pub/Sub com Redis
SQL + Banco de Dados 05/05/2026

Pub/Sub com Redis

O modelo publisher/subscriber (pub/sub) no Redis implementa um padrão de comunicação assíncrona onde produtores de mensagens (publishers) enviam dados para canais sem conhecimento direto dos consumidores (subscribers). Diferentemente de filas tradicionais como Redis Lists, onde as mensagens são armazenadas e removidas após o consumo, o pub/sub opera no modelo fire-and-forget: mensagens são entregues apenas para subscribers ativos no momento da publicação.

Query caching no nível da aplicação
SQL + Banco de Dados 05/05/2026

Query caching no nível da aplicação

Cachear consultas SQL no lado da aplicação é uma das estratégias mais eficazes para reduzir latência e aliviar a carga no banco de dados. Diferente do cache nativo do banco (como o buffer pool do MySQL ou shared buffers do PostgreSQL), que opera em nível de páginas de disco, o cache na aplicação armazena resultados completos de queries, evitando que o banco precise reexecutá-las.

Query planning hints: quando e como usar
SQL + Banco de Dados 05/05/2026

Query planning hints: quando e como usar

O otimizador de consultas baseado em custo (CBO) é o coração de qualquer SGBD moderno. Ele analisa estatísticas como número de linhas, distribuição de valores, cardinalidade de índices e seletividade de filtros para estimar o custo de diferentes planos de execução. Em teoria, o planner escolhe o plano mais eficiente. Na prática, isso nem sempre acontece.

Particionamento de tabelas
SQL + Banco de Dados 05/05/2026

Particionamento de tabelas

Particionamento de tabelas é uma técnica de design de banco de dados que divide logicamente uma tabela grande em partes menores e mais gerenciáveis, chamadas partições, mantendo uma única interface lógica para consultas e manipulações. Cada partição armazena um subconjunto dos dados com base em uma chave de particionamento, como data, região geográfica ou faixa de valores.

PARTITION BY e OVER nas window functions
SQL + Banco de Dados 05/05/2026

PARTITION BY e OVER nas window functions

Window functions são funções especiais do SQL que realizam cálculos sobre um conjunto de linhas relacionadas à linha atual, sem agrupar os resultados em uma única saída. Diferentemente das funções de agregação tradicionais como SUM() ou AVG() com GROUP BY, que reduzem múltiplas linhas a uma única linha por grupo, as window functions preservam todas as linhas originais e adicionam uma coluna calculada.

Performance testing: pgbench e simulação de carga real
SQL + Banco de Dados 05/05/2026

Performance testing: pgbench e simulação de carga real

Testar a performance de um banco de dados não é um luxo — é uma necessidade para qualquer aplicação que precise crescer sem perder qualidade. Gargalos como consultas lentas, contenção de locks ou I/O de disco insuficiente podem transformar uma aplicação responsiva em uma experiência frustrante. Testes de performance ajudam a identificar esses pontos antes que eles afetem usuários reais, garantindo que o banco atenda aos SLAs (Acordos de Nível de Serviço) estabelecidos.

Persistência no Redis: RDB e AOF
SQL + Banco de Dados 05/05/2026

Persistência no Redis: RDB e AOF

O Redis é amplamente conhecido como um banco de dados in-memory, mas isso não significa que seus dados precisam ser voláteis. Por padrão, o Redis mantém tudo em RAM para oferecer latências de microssegundos, porém, sem persistência, uma reinicialização do servidor resultaria em perda total dos dados. Para cenários onde a durabilidade importa — como cache de consultas SQL lentas, sessões de usuário ou filas de tarefas — o Redis oferece dois mecanismos de persistência: RDB (Redis Database Backup)

Point-in-time recovery: restaurando para um momento específico
SQL + Banco de Dados 05/05/2026

Point-in-time recovery: restaurando para um momento específico

Point-in-time recovery (PITR) é uma técnica de recuperação de bancos de dados que permite restaurar o sistema para um estado consistente em qualquer instante específico do passado. Diferente de um backup completo tradicional, que restaura apenas o estado do banco no momento em que o backup foi feito, o PITR possibilita "voltar no tempo" para um ponto exato entre backups.