seegongsik
Mis palabras
Datos

cómo Qué es un índice de base de datos

Imagina buscar una palabra en un libro grueso. Leer de la primera página a la última toma demasiado. Por eso un libro tiene un índice al final. Lista palabras con números de página, así saltas directo a esa página. Una base de datos es igual. Cuando los datos crecen, recorrerlos desde el inicio es muy lento, así que construye un índice, una especie de mapa de búsqueda, de antemano.

01

Un libro tiene un índice al final

Antes vimos cómo una base de datos
encuentra la fila que quiere.
Pero cuando hay muchos datos,
recorrerlos de inicio a fin es lento.
Es igual que cazar una palabra
en un libro grueso desde la primera página.
Por eso un libro tiene un índice al final.
Un número de página va junto a cada palabra,
así saltas directo a esa página.

Hallar una palabra en un libro grueso
page 1
page 2
page 3
page 4
page 5palabra a hallar
page 6
indice: palabra -> page 5
Toca ambas formas para comparar los pasos

Compara recorrer el texto desde el inicio con saltar usando el índice. ¿Cuántos pasos toma cada uno?

Saltar con el índice
lo encontró en muchos menos pasos.
El índice de una base de datos
es exactamente esta búsqueda.
Es un mapa hecho de antemano
para hallar los datos rápido.
Pero los índices vienen en tipos.
Hallar un valor exacto
y hallar un rango son distintos.

02

Para un valor exacto, un índice hash

A veces quieres hallar
solo un valor exacto, como "Kim".
Para eso, un índice hash va bien.
Un hash toma el nombre
y calcula un número de casilla al instante.
Así, sin recorrer fila por fila,
salta a esa casilla en un paso.
Es como saber el número de un casillero
y abrir justo ese.

nombres (valor exacto)
casillas
0
1
2
3
4
Toca un nombre para hallar su casilla con el hash

Toca un nombre y el hash calcula un número de casilla, saltando a esa caja en un paso.

Con solo un nombre
halló el lugar de una vez.
Un índice hash es así de rápido
para hallar un valor exacto.
Pero tiene un punto débil.
Un hash dispersa los valores,
así que hallar por un rango,
como "de 20 a 30 años",
lo hace mal. Ahí hace falta otro índice.

03

Para un rango, un índice de árbol

A veces quieres hallar
por un rango, como "de 20 a 30 años".
Para eso, un índice de árbol va bien.
Un índice de árbol mantiene los valores
ordenados de menor a mayor.
Así, una vez hallado el valor inicial,
puedes correr justo a su lado,
recorriendo en orden los valores del rango.
Es como un diccionario en orden alfabético.

indice de arbol ordenado (edad)
Toca el valor inicial del rango

Toca para fijar el rango a hallar. El índice de árbol ordenado halla el valor inicial y recorre el rango.

Como está ordenado,
el rango corrió suave hacia el lado.
Un hash localiza un punto,
un árbol recorre una línea.
Así que el índice correcto depende
de lo que buscas a menudo.
Muchos valores exactos, usa hash;
muchos rangos, usa árbol.
Pero un índice no es gratis.

04

Un índice no es gratis

Un índice también tiene desventajas.
Primero, ocupa espacio extra.
Como la búsqueda se escribe aparte,
usa ese tanto más de sitio.
Segundo, cuando los datos cambian
el índice debe cambiar con ellos.
Si añades o borras una fila,
la búsqueda hay que actualizarla para que cuadre.
Así que crear muchos a ciegas es una pérdida.

tabla de datos
Ann
Ben
Cho
indice (busqueda)
Ann#0
Ben#1
Cho#2
espacio que usa el indice: 3 celdas
Añade o borra una fila y el indice la sigue

Añade o borra una fila. Cada vez que los datos cambian, el índice también se actualiza, y el espacio que usa crece.

Cada vez que los datos cambiaban
el índice se movía con ellos.
Y ocupaba más y más espacio.
Por eso hacemos un índice
solo para valores que buscamos a menudo.
Sopesamos la ganancia de velocidad
contra el costo de espacio y actualizaciones
en una balanza.
Bien elegido, las búsquedas van mucho más rápidas.

05

Resumamos

Reunido en una línea, es esto.
Un índice, como la búsqueda al final del libro,
es un mapa que te deja saltar rápido.
Un índice hash localiza un valor exacto
de un solo paso,
y un índice de árbol, al estar ordenado,
va bien para recorrer un rango.
Pero usa espacio extra
y hay que actualizarlo cuando los datos cambian.

1. busqueda del libro = mapa para saltar rapido
2. indice hash para un valor exacto
3. indice de arbol ordenado para un rango
4. no es gratis (espacio + actualizaciones)
Pulsa el boton para repasar los puntos clave en orden

Toca los puntos clave en orden para repasar. (búsqueda del libro -> hash para exacto -> árbol para rango -> no es gratis)

Ahora sabes cómo un índice
hace rápidas las búsquedas.
Hemos visto cómo hallar datos rápido,
así que ahora pasamos a manejar
los datos de forma segura.
¿Qué pasa cuando muchas personas
tocan los mismos datos a la vez?
Resolvamos ese problema delicado
juntos en la próxima lección.

En una líneaCuando hay muchos datos, recorrerlos desde el inicio es lento. Un índice es como la búsqueda al final del libro, un mapa hecho de antemano para que la base de datos salte directo al lugar correcto. Hay dos tipos. Un índice hash localiza un valor exacto de un solo paso. Un índice de árbol mantiene los valores ordenados, así que va bien para recorrer un rango. Pero no es gratis. Un índice ocupa espacio extra, y cuando los datos cambian el índice también hay que actualizarlo. Aun así, bien usado, hace las búsquedas mucho más rápidas.
Datos
¿Te fue útil? Apoyar seegongsik