Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como funciona a leitura de dados ?

Eu tenho uma duvida bem simples ! Como é feita a leitura dos dados de um banco de dados ? Ela é feita direto no ID que eu quero, ou ela tem que ler todos os dados até achar o ID ?

Por exemplo:

Tabela Frutas

IDNome
1Laranja
2Maça
3Uva
4Morango

Quero acessar o dado Uva, fiz meu código back-end lá e conseguir pegar a Uva ! Porém quero entender como isso funciona por trás, como é feito essa leitura lá no próprio banco ? Ele lê todos os dados até chegar no dado que eu quero ? Ele passaria por Laranja e Maça para chegar em Uva ? Ou ele vai direto no elemento que eu quero ?

Desde já agradeço.

1 resposta
solução!

Olá Bruno!

Na verdade essa é uma ótima pergunta!

Tive que fazer uma bela pesquisa para conseguir encontrar uma resposta, porém ela é mais complexa que eu esperava.

O MySQL (e outros DBs) usa o InnoDB como mecanismo de armazenamento. E a maneira de armazenar dados é com estruturas de árvores binárias, mas para entender a parte da busca, veremos como funciona a árvore binária de busca.

Ou seja, toda a tabela começa com uma raiz (root), que normalmente será um índice intermediário e essa raiz aponta para duas ramificações (knots ou nós de nó), uma em cada direção, uma anterior e uma posterior. Cada nó aponta para mais dois, um anterior e outro posterior até encontrar o valor desejado.

Digamos que para esta pequena lista, a raiz poderia ser Maçã, com isso, o primeiro índice apontaria para Laranja como um nó menor e para Uva como um nó maior, mas não percorreria todos os elementos da tabela.

Bom, basicamente é este o funcionamento. Para mais detalhes deste assunto, tem alguns links:

Documentação do MySQL, mais precisamente estrutura do InnoDB (em inglês)

Página da Wikipedia sobre Árvores binárias de busca (em português)

Página da Wikipedia sobre Árvores binárias (em português)

Espero ter ajudado! Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software