SQL NULLs: Quebrando sua intuição

2025-01-09

O tratamento de valores NULL no SQL frequentemente desafia as expectativas. Esta publicação revela o comportamento surpreendente de NULLs em colunas com restrições únicas: múltiplos NULLs podem coexistir. Por meio de exemplos práticos em SQLite, Postgres e MySQL, o autor demonstra como NULLs se comportam de forma diferente com os operadores '=' e 'IS', explicando os motivos subjacentes. Duas soluções para garantir a unicidade são exploradas: criar uma coluna gerada e usar um índice parcial. Usar um índice parcial é recomendado como melhor prática, evitando aumentos no tamanho da tabela e potenciais erros.

Leia mais
Desenvolvimento

Convoy abandona UUIDv4 e adota ULIDs: eficiência e escalabilidade na era do big data

2024-12-28

Durante uma migração de banco de dados de MongoDB para Postgres, a Convoy decidiu substituir o UUIDv4 por ULIDs como identificadores únicos. O artigo compara o UUIDv4 e o ULID, destacando as vantagens do ULID: capacidade de classificação lexicográfica, facilidade de uso em URLs e eficiência aprimorada de indexação de banco de dados, embora com velocidades de geração e inserção ligeiramente mais lentas. A Convoy escolheu ULIDs principalmente para resolver problemas de desempenho de paginação com grandes conjuntos de dados. Embora os ULIDs sejam marginalmente mais lentos para gerar, os ganhos de desempenho, especialmente para o processamento de dados em larga escala, são considerados úteis. O artigo também discute potenciais riscos de vazamento de informações de tempo e implicações para os dados do usuário de ULIDs, e menciona brevemente a possível adoção futura do UUIDv7.

Leia mais
Desenvolvimento Banco de dados