Pregunta de entrevista para Ingeniero de software

¿Cómo funciona un índice de base de datos y cuándo empeora las cosas añadir uno?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Un índice es una estructura ordenada aparte, normalmente un árbol B, que mapea valores de columna a ubicaciones de filas para que el motor pueda hacer seek en vez de recorrerlo todo. Acelera las lecturas que filtran u ordenan por esas columnas. Te cuesta en las escrituras, porque cada insert, update y delete tiene que mantenerlo, y te cuesta almacenamiento. Las columnas con poca selectividad y los índices que nadie consulta suelen ser una pérdida neta.

Por qué lo preguntan los entrevistadores

Los índices son la herramienta con más palanca que tiene la mayoría de los ingenieros y la más fácil de copiar sin entender. El entrevistador comprueba que entiendes el lado de las escrituras del intercambio, que sabes que la selectividad determina si el planificador va a usar siquiera el índice, y que puedes explicar por qué indexar todas las columnas no es una estrategia. También abre la puerta a la planificación de consultas.

Cómo estructurar tu respuesta

  • Describe el índice como una estructura de búsqueda ordenada con punteros a filas.
  • Explica el beneficio en lectura en términos de seeks frente a recorridos.
  • Nombra explícitamente los costes de escritura y almacenamiento.
  • Da un caso en el que el planificador ignora el índice de todos modos.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Un índice es esencialmente una copia ordenada de una o varias columnas con punteros a las filas, normalmente un árbol B, para que el motor pueda hacer búsqueda binaria en vez de leer todas las páginas. Eso convierte un filtro sobre una tabla grande de un recorrido secuencial en un puñado de lecturas de página. El coste es que cada escritura tiene que actualizar también el índice, así que una tabla con ocho índices paga ocho veces en cada insert y las cargas masivas se ralentizan mucho. Lo otro que vigilo es la selectividad. Si una columna es un booleano que es cierto en el noventa por ciento de las filas, el planificador normalmente hará un recorrido, porque el acceso aleatorio a tantas filas cuesta más que leer secuencialmente. Tuve un caso donde alguien añadió un índice sobre una columna de estado con tres valores y no mejoró nada. Lo que de verdad lo arregló fue un índice compuesto sobre tenant id y created at, que encajaba con el filtro y con el orden, así que la base de datos podía hacer seek y luego leer en orden sin un paso de ordenación aparte.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Por qué importa el orden de las columnas en un índice compuesto?
  • ¿Qué te da un índice de cobertura?
  • ¿Cómo sabrías si el planificador está usando tu índice?

Más preguntas para Ingeniero de software

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot