Pular para o conteúdo principal

Problema

Uma busca em Map, como a['key'], tem complexidade linear (mencionada aqui) e pode ser ineficiente. Isso ocorre porque selecionar um valor com uma chave específica de uma tabela exigiria percorrer todas as chaves (~M) em todas as linhas (N) da coluna Map, resultando em ~MxN buscas. Uma busca usando Map pode ser 10x mais lenta do que uma coluna String. O experimento abaixo também mostra uma desaceleração de ~10x para uma consulta fria e uma diferença de várias ordens de magnitude na quantidade de dados processados (7.21 MB vs 5.65 GB).
Solução Para melhorar a consulta, podemos adicionar outra coluna com o valor definido por padrão para uma chave específica na coluna map e, em seguida, materializá-la para preencher o valor das linhas existentes. Dessa forma, extraímos e armazenamos o valor necessário no momento da inserção, acelerando a busca no momento da consulta.
Última modificação em 10 de junho de 2026