Skip to main content

Row-based or Column-based

  • Row-based or Column-based

Baseado em linhas ou em colunas? Por que a estrutura do banco de dados é importante

Os bancos de dados vêm em duas estruturas fundamentais: baseados em linhas ou baseados em colunas. Esta decisão crucial determina como seus dados são armazenados – em linhas ou colunas. As implicações de desempenho e dimensionamento são significativas.

𝗥𝗼𝘄-𝗕𝗮𝘀𝗲𝗱 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲𝘀

Os bancos de dados baseados em linhas armazenam dados em linhas. Todas as informações relacionadas a um registro são armazenadas juntas, facilitando a recuperação da linha completa.

𝗖𝗼𝗹𝘂𝗺𝗻-𝗕𝗮𝘀𝗲𝗱 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲𝘀

Os bancos de dados baseados em colunas armazenam informações por colunas em vez de linhas. Portanto, uma coluna conterá todos os valores do campo em muitas linhas e registros.

𝗪𝗵𝘆 𝗜𝘁 𝗠𝗮𝘁𝘁𝗲𝗿𝘀 𝗳𝗼𝗿 𝗤𝘂𝗲𝗿𝘆 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻 𝗰𝗲

A estrutura do banco de dados desempenha um papel importante no desempenho da consulta. Os bancos de dados baseados em linhas permitem a recuperação eficiente de linhas inteiras. Isto os torna mais adequados para processamento transacional que requer acesso a registros completos.

Os armazenamentos colunares são excelentes em consultas agregadas – como somas ou médias – que analisam muitas linhas porque uma coluna contém todos os dados relevantes para calcular estatísticas. As consultas analíticas são executadas com muito mais rapidez, reduzindo os dados que precisam ser verificados.

𝗪𝗵𝘆 𝗜𝘁 𝗠𝗮𝘁𝘁𝗲𝗿𝘀 𝗳𝗼𝗿 𝗦𝗰𝗮𝗹𝗮𝗯𝗶𝗹𝗶𝘁𝘆

Os bancos de dados de coluna costumam ser mais escalonáveis para cargas de trabalho analíticas, pois os dados já estão armazenados por coluna. A expansão para armazenar novos lotes grandes de registros é mais fácil com uma orientação de coluna. A compactação de colunas também economiza espaço considerável para grandes volumes de dados. Isso torna os armazenamentos de colunas adequados para “big data”.

Mas a atualização dos dados pode ser mais lenta. Portanto, os armazenamentos de linha podem ser mais adequados para transações de alto volume que adicionam/atualizam registros regularmente. A estrutura se alinha melhor com esses casos de uso.

𝗚𝗲𝘁 𝗜𝘁 𝗥𝗶𝗴𝗵𝘁 𝗙𝗿𝗼𝗺 𝘁𝗵𝗲 𝗦𝘁𝗮𝗿𝘁

Muitos aplicativos modernos com uso intensivo de dados aproveitam bancos de dados orientados a linhas e orientados a colunas. Os aplicativos transacionais para lidar com operações comerciais críticas geralmente dependem de sistemas baseados em linhas, como MySQL e Postgres, para estabilidade e conformidade com ACID. Cargas de trabalho analíticas voltadas para business intelligence tendem a utilizar data warehouses baseados em colunas, como ClickHouse, para desempenho em escala.

Quais cargas de trabalho específicas poderiam se beneficiar dos bancos de dados de linha versus coluna em sua infraestrutura?