Categoria

SQL + Banco de Dados

Locks: tipos e como evitar deadlocks
SQL + Banco de Dados

Locks: tipos e como evitar deadlocks

Locks são mecanismos fundamentais em sistemas de gerenciamento de banco de dados (SGBDs) para garantir a consistência e o isolamento das transações. Quando múltiplas transações concorrem pelo acesso simultâneo aos mesmos dados, os locks impedem que operações conflitantes interfiram umas nas outras.

05/05/2026
Logical replication: filtrando e transformando dados em trânsito
SQL + Banco de Dados 05/05/2026

Logical replication: filtrando e transformando dados em trânsito

A replicação lógica no PostgreSQL é um mecanismo que permite copiar dados de um servidor (publisher) para um ou mais servidores (subscribers) com granularidade fina. Diferente da replicação física, que replica o banco inteiro no nível do disco, a replicação lógica opera no nível das transações e permite selecionar quais tabelas, linhas e colunas serão replicadas.

Instalando PostgreSQL e conectando com psql
SQL + Banco de Dados 05/05/2026

Instalando PostgreSQL e conectando com psql

PostgreSQL é um sistema de gerenciamento de banco de dados relacional objeto-orientado, de código aberto, com mais de 30 anos de desenvolvimento ativo. Criado originalmente na Universidade da Califórnia, Berkeley, o PostgreSQL é conhecido por sua conformidade com padrões SQL, extensibilidade e robustez. Sua licença é do tipo MIT-style, permitindo uso comercial e modificações sem restrições.

Introdução ao Redis: chave-valor em memória
SQL + Banco de Dados 05/05/2026

Introdução ao Redis: chave-valor em memória

Redis (Remote Dictionary Server) é um banco de dados NoSQL do tipo chave-valor que armazena todos os dados primariamente na memória RAM. Diferente de bancos relacionais como PostgreSQL ou MySQL, que persistem dados em disco e usam memória apenas como cache temporário, o Redis trabalha com estruturas de dados na memória principal, oferecendo latências na ordem de microssegundos para operações de leitura e escrita.

IS NULL e IS NOT NULL
SQL + Banco de Dados 05/05/2026

IS NULL e IS NOT NULL

NULL em SQL representa a ausência de valor, não um valor em si. É fundamental compreender que NULL é diferente de zero (0), string vazia ('') ou qualquer outro valor. NULL significa que o dado é desconhecido, inexistente ou ainda não foi informado.

Isolamento de transações e problemas de concorrência
SQL + Banco de Dados 05/05/2026

Isolamento de transações e problemas de concorrência

Em sistemas de banco de dados modernos, múltiplos usuários e processos acessam simultaneamente os mesmos dados. Concorrência em transações refere-se à execução paralela de várias operações de leitura e escrita no banco. Sem controle adequado, essas operações simultâneas podem gerar inconsistências e corromper os dados.

JSONB indexing strategies: GIN vs GIST e performance
SQL + Banco de Dados 05/05/2026

JSONB indexing strategies: GIN vs GIST e performance

JSONB é o formato binário de JSON no PostgreSQL, introduzido na versão 9.4. Diferentemente do tipo json, que armazena o texto exato como foi inserido (preservando espaços, ordem de chaves e duplicatas), o jsonb armazena os dados em um formato binário decomposto. Isso significa que:

HAVING: filtrando grupos
SQL + Banco de Dados 05/05/2026

HAVING: filtrando grupos

No SQL, a filtragem de dados pode ocorrer em diferentes momentos da execução de uma consulta. Enquanto a cláusula WHERE filtra linhas individuais antes da agregação, o HAVING atua após o agrupamento, permitindo filtrar grupos inteiros com base em resultados de funções de agregação.

Índices: o que são e por que mudam tudo
SQL + Banco de Dados 05/05/2026

Índices: o que são e por que mudam tudo

Imagine que você precisa encontrar uma palavra específica em um livro de 1000 páginas. Sem um sumário ou índice remissivo, você seria obrigado a folhear cada página até encontrar o termo desejado. Esse processo é lento, ineficiente e se torna inviável conforme o livro cresce.

Índices parciais e índices de expressão
SQL + Banco de Dados 05/05/2026

Índices parciais e índices de expressão

Os índices B-tree tradicionais indexam todas as linhas de uma tabela com base em uma ou mais colunas. Embora sejam eficientes para consultas genéricas, eles apresentam limitações significativas: ocupam espaço em disco proporcional ao número total de linhas, exigem manutenção em todas as operações DML e não conseguem acelerar consultas que envolvem transformações nos dados (como funções aplicadas a colunas). Um índice em email não ajudará uma consulta com WHERE LOWER(email) = 'joao@exemplo.com',