Como funciona a leitura de dados ? | MySQL I: Iniciando suas consultas | Solucionado
Como funciona a leitura de dados ?
Publicado 3 anos atrás , em 01/04/2019
| 81.1k xp | 35 posts
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 ?
Tabela Frutas
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 ?
| 1393.2k xp | 2002 posts
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.