seegongsik
Datos

Cómo encuentra datos una base de datos

Si una biblioteca tiene solo diez libros, puedes revisarlos uno por uno y encontrar el que buscas enseguida. Pero ¿y si tiene millones? Revisarlos uno a uno te llevaría todo el día. Con una base de datos pasa lo mismo. Al principio busca recorriendo toda la tabla fila por fila, pero cuando los datos llegan a cientos de millones de registros, eso resulta demasiado lento. Por eso prepara un índice de antemano y salta directo al lugar correcto.

01

Al principio, recorre fila por fila

En la lección anterior dijimos que una base de datos organiza la información en filas, como una tabla. La forma más sencilla de encontrar algo en ella es empezar por la fila de arriba e ir bajando una a una, comprobando cada una.
Cuando encuentras una fila que coincide, te detienes. Recorrer así todo, de principio a fin y en orden, se llama búsqueda completa.

Toca el valor que quieres encontrar

Toca el valor que quieres encontrar. Va bajando casilla por casilla y cuenta cuántas revisó hasta llegar.

Un valor que estaba arriba se encontró en pocas revisiones, mientras que uno que estaba abajo solo se alcanzó después de pasar por todo lo de arriba. Si el valor está al final, acabas mirando todas las filas.
Cuando hay pocas filas, esto es lo bastante rápido y no causa problemas. Entonces, ¿qué pasa cuando las filas se vuelven muchísimas?

02

Cuando los datos crecen, recorrer se vuelve lento

Una base de datos real tiene una cantidad enorme de filas; millones o incluso cientos de millones son algo común. Para encontrar el último valor con una búsqueda completa, hay que mirar cada una de esas filas.
Así que, si el número de filas se duplica, el número de revisiones también se duplica. El costo de buscar crece al mismo ritmo que las filas: ese es el límite de la búsqueda completa.

filas10
revisiones de la búsqueda completa para hallar el último valor
10
Aumenta las filas y mira cómo sube la barra

Toca para aumentar el número de registros. La barra muestra cómo suben con fuerza las revisiones necesarias para encontrar el último valor con búsqueda completa.

Cuanto más aumentabas la cantidad, más se alargaba la barra. Lo que en una tabla pequeña no importaba se vuelve una carga pesada en una grande.
Mientras recorras de principio a fin cada vez, este costo no se puede evitar. ¿Habrá una forma de ir directo al lugar sin recorrer nada? Por suerte, hay una forma ingeniosa.

03

Crear un índice para saltar directo

Piensa en el índice que hay al final de un libro. Las palabras están ordenadas alfabéticamente, con el número de página al lado. En lugar de hojear todo el libro, buscas la palabra en el índice y abres directamente esa página.
Una base de datos también puede preparar una lista así de antemano. Se llama índice.

índice ordenado
tabla (orden de almacenamiento)
171
212
353
46
588
629
745
837
Toca una etiqueta en el índice

Toca una etiqueta del índice ordenado. Sin recorrer la tabla, saltas directo a esa fila en uno o dos pasos.

Con el índice llegaste directo, sin recorrer la tabla. Incluso para un valor al final bastaron uno o dos pasos.
El secreto es que el índice se mantiene bien ordenado de antemano. En una lista ordenada puedes mirar el centro, decidir si el valor que buscas está en la primera mitad o en la segunda, descartar la otra mitad y repetir. Haciéndolo así, incluso entre un millón de elementos encuentras el que buscas en unos veinte pasos.

04

Comparar la búsqueda completa y el índice

Pongamos los dos métodos lado a lado y comparémoslos con la misma cantidad de registros. La búsqueda completa tiene que revisar tantas veces como filas haya. El índice aprovecha el orden y termina en muy pocas revisiones.
Aunque la cantidad sea la misma, los resultados son como el día y la noche. Por eso conviene crear un índice para los campos que se buscan a menudo.

filas
búsqueda completa
índice
Halla el mismo valor de las dos formas y compara las revisiones

Elige una cantidad y lanza las dos búsquedas. Compara lado a lado cuántas revisiones necesitaron la búsqueda completa y el índice para encontrar el mismo valor.

Cuanto más aumentabas la cantidad, más subía la barra de la búsqueda completa, mientras que la del índice casi no cambiaba. Justamente esa diferencia es la que hace brillar a los índices cuando los datos son grandes.
Claro que un índice no es gratis. Necesita espacio extra y, cada vez que entra una fila nueva, hay que actualizarlo para que siga ordenado. Aun así, para los campos que se buscan a menudo, vale la pena.

05

En resumen

En pocas palabras: la forma más sencilla de buscar es la búsqueda completa, que recorre todas las filas desde el principio. Con pocos datos, basta.
Pero cuando los datos llegan a cientos de millones de registros, el costo de recorrerlos sube con fuerza. Por eso se prepara un índice de antemano y se salta directo en uno o dos pasos. Con la misma cantidad de registros, el índice revisa muchas menos filas.

1
recorrer fila por fila
2
los datos se disparan
3
saltar con un índice
4
búsqueda completa vs índice
Toca el siguiente punto clave

Toca en orden los puntos clave para repasar. (recorrer fila por fila → los datos se disparan → saltar con un índice → búsqueda completa vs índice)

Ahora ya sabes por qué una base de datos pasa de la búsqueda completa a los índices. Entonces, ¿cómo se construye realmente un índice?
Además de una lista ordenada, hay métodos como el hash y los árboles. La próxima lección mira primero el hash, que calcula un lugar directamente a partir de una sola etiqueta.

En una líneaLa forma más sencilla de que una base de datos encuentre algo es la búsqueda completa: leer todas las filas de principio a fin. Con pocos datos es lo bastante rápida. Pero cuando la cantidad de registros llega a cientos de millones, hay muchísimas más filas que recorrer y se vuelve cada vez más lenta. Por eso se prepara un índice de antemano. Un índice es como una lista ordenada de etiquetas, así que en lugar de recorrerlo todo saltas directo al lugar en uno o dos pasos. Con la misma cantidad de registros, un índice encuentra la respuesta con muchos menos pasos que una búsqueda completa. Cómo se construyen de verdad los índices (índices, hash, árboles) se trata en las lecciones siguientes.
← Datos
¿Te fue útil? Apoyar seegongsik