Repaso
English
Bases de datos y SQLIntermedioDB-17

EXPLAIN muestra un sequential scan en una tabla de 50 millones de filas para WHERE email = ?. ¿Cuál es la solución más probable?

Opciones

  1. Añadir más RAM
  2. Añadir un índice en email (Opción correcta)
  3. Reescribir en NoSQL
  4. Usar SELECT DISTINCT

Respuesta

Añadir un índice en email

Por qué

EXPLAIN muestra el plan que usará la base de datos para una consulta. Un 'sequential scan' significa que lee todas las filas, aquí 50 millones, para encontrar un email.

Un índice en email le permite saltar directamente a la fila que coincide.

Usa EXPLAIN ANALYZE para ver tiempos reales, y cuidado con funciones como LOWER(email), que necesitan un índice sobre esa expresión.

Recuerda

Seq scan en tabla grande + filtro selectivo → añade un índice.

Términos clave

Practica esta pregunta en Repaso