Indexação B-Tree
Um índice B-tree é uma estrutura de dados em árvore balanceada comumente utilizada em bancos de dados para organizar e pesquisar grandes volumes de dados de forma eficiente.
B-trees são muito semelhantes às árvores binárias de busca (BST), mas os nós em uma B-tree podem ter mais de dois filhos.
A B-tree armazena chaves em ordem classificada dentro dos nós, permitindo a recuperação rápida de dados por meio da travessia hierárquica do nó raiz até os nós folha. A indexação B-tree é adequada para consultas de intervalo e buscas por igualdade, tornando-se uma escolha popular para otimizar o desempenho de bancos de dados.
Como funciona?
O índice B-tree organiza os dados de forma hierárquica, com cada nó contendo um número fixo de chaves e ponteiros para nós filhos.
As B-trees mantêm o balanceamento garantindo que todos os nós folha estejam no mesmo nível, o que otimiza as operações de busca.
Ao buscar uma chave específica, o algoritmo da B-tree percorre a árvore do nó raiz até os nós folha, utilizando busca binária para localizar a chave desejada de forma eficiente.
Busca por índice envolve percorrer a árvore até alcançar os nós folha, seguir a cadeia de nós folha para encontrar os registros correspondentes e recuperar os dados reais do disco.
Na figura, a busca pela chave 302 é ilustrada:
-
Uma estrutura de árvore de busca é um tipo de árvore onde cada nó possui dois ponteiros: o ponteiro esquerdo aponta para nós filhos com valores menores que o nó pai, e o ponteiro direito aponta para nós filhos com valores maiores que o nó pai;
-
Em uma B-tree, o nó raiz pode conter múltiplos valores de índice. Por exemplo, se o nó raiz contiver três valores distintos, ele terá três ponteiros, cada um indicando o intervalo de valores entre essas chaves;
-
Para buscar uma chave, como
302, a busca começa no nó raiz e segue os ponteiros apropriados até os nós folha. A busca é concluída após percorrer três blocos da árvore, conforme destacado em vermelho no diagrama; -
Para buscar um intervalo de valores a partir de
302, é possível utilizar os ponteiros horizontais entre os nós folha. Por exemplo, a recuperação de valores de302a502é feita seguindo sequencialmente os nós folha.
A chave utilizada para busca em um índice B-tree provém dos valores armazenados na(s) coluna(s) indexada(s) da tabela do banco de dados. Por exemplo, se o índice estiver em uma coluna como "client_id", a chave de busca será o valor real de "client_id". Cada valor numérico único na coluna indexada serve como uma chave no índice B-tree, facilitando a localização e recuperação das linhas correspondentes na tabela do banco de dados.
Vantagens e desvantagens
Ao contrário da estrutura de dados padrão Árvore Binária de Busca, os nós de uma B-tree podem acomodar mais de 2 filhos. O número máximo padrão de filhos por nó geralmente é definido como 16.
Implementação de índice
Para criar um índice B-tree em uma coluna no PostgreSQL, utilize o seguinte comando SQL:
CREATE INDEX index_name ON table_name USING BTREE (column_name1, column_name2,...);
Como o índice B-tree é o índice padrão em SQL, também podemos usar a seguinte instrução para criá-lo:
CREATE INDEX index_name ON table_name(column_name1, column_name2,..);
Em SQL, ao criar uma tabela com uma restrição de chave primária, a maioria dos sistemas de gerenciamento de banco de dados cria automaticamente um índice na(s) coluna(s) especificada(s) como chave primária. Esse índice ajuda a garantir a restrição de unicidade da chave primária e também melhora o desempenho de consultas que envolvem buscas ou junções baseadas na(s) coluna(s) da chave primária.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain the difference between a B-tree and a binary search tree in more detail?
What are some real-world examples where B-tree indexes are especially useful?
How does a B-tree index improve the performance of range queries?
Awesome!
Completion rate improved to 4.55
Indexação B-Tree
Deslize para mostrar o menu
Um índice B-tree é uma estrutura de dados em árvore balanceada comumente utilizada em bancos de dados para organizar e pesquisar grandes volumes de dados de forma eficiente.
B-trees são muito semelhantes às árvores binárias de busca (BST), mas os nós em uma B-tree podem ter mais de dois filhos.
A B-tree armazena chaves em ordem classificada dentro dos nós, permitindo a recuperação rápida de dados por meio da travessia hierárquica do nó raiz até os nós folha. A indexação B-tree é adequada para consultas de intervalo e buscas por igualdade, tornando-se uma escolha popular para otimizar o desempenho de bancos de dados.
Como funciona?
O índice B-tree organiza os dados de forma hierárquica, com cada nó contendo um número fixo de chaves e ponteiros para nós filhos.
As B-trees mantêm o balanceamento garantindo que todos os nós folha estejam no mesmo nível, o que otimiza as operações de busca.
Ao buscar uma chave específica, o algoritmo da B-tree percorre a árvore do nó raiz até os nós folha, utilizando busca binária para localizar a chave desejada de forma eficiente.
Busca por índice envolve percorrer a árvore até alcançar os nós folha, seguir a cadeia de nós folha para encontrar os registros correspondentes e recuperar os dados reais do disco.
Na figura, a busca pela chave 302 é ilustrada:
-
Uma estrutura de árvore de busca é um tipo de árvore onde cada nó possui dois ponteiros: o ponteiro esquerdo aponta para nós filhos com valores menores que o nó pai, e o ponteiro direito aponta para nós filhos com valores maiores que o nó pai;
-
Em uma B-tree, o nó raiz pode conter múltiplos valores de índice. Por exemplo, se o nó raiz contiver três valores distintos, ele terá três ponteiros, cada um indicando o intervalo de valores entre essas chaves;
-
Para buscar uma chave, como
302, a busca começa no nó raiz e segue os ponteiros apropriados até os nós folha. A busca é concluída após percorrer três blocos da árvore, conforme destacado em vermelho no diagrama; -
Para buscar um intervalo de valores a partir de
302, é possível utilizar os ponteiros horizontais entre os nós folha. Por exemplo, a recuperação de valores de302a502é feita seguindo sequencialmente os nós folha.
A chave utilizada para busca em um índice B-tree provém dos valores armazenados na(s) coluna(s) indexada(s) da tabela do banco de dados. Por exemplo, se o índice estiver em uma coluna como "client_id", a chave de busca será o valor real de "client_id". Cada valor numérico único na coluna indexada serve como uma chave no índice B-tree, facilitando a localização e recuperação das linhas correspondentes na tabela do banco de dados.
Vantagens e desvantagens
Ao contrário da estrutura de dados padrão Árvore Binária de Busca, os nós de uma B-tree podem acomodar mais de 2 filhos. O número máximo padrão de filhos por nó geralmente é definido como 16.
Implementação de índice
Para criar um índice B-tree em uma coluna no PostgreSQL, utilize o seguinte comando SQL:
CREATE INDEX index_name ON table_name USING BTREE (column_name1, column_name2,...);
Como o índice B-tree é o índice padrão em SQL, também podemos usar a seguinte instrução para criá-lo:
CREATE INDEX index_name ON table_name(column_name1, column_name2,..);
Em SQL, ao criar uma tabela com uma restrição de chave primária, a maioria dos sistemas de gerenciamento de banco de dados cria automaticamente um índice na(s) coluna(s) especificada(s) como chave primária. Esse índice ajuda a garantir a restrição de unicidade da chave primária e também melhora o desempenho de consultas que envolvem buscas ou junções baseadas na(s) coluna(s) da chave primária.
Obrigado pelo seu feedback!