#416 · Herramienta para desarrolladores

SQL Index Suggestion Checklist

Revisa una consulta SQL sin ejecutarla y extrae señales que suelen influir en el diseño de índices: columnas usadas en filtros, claves de JOIN, ordenación y agrupación. La salida no afirma que un índice sea necesario; organiza una checklist para contrastarla con EXPLAIN, cardinalidad, selectividad y carga de escritura. También marca patrones como funciones aplicadas a columnas en WHERE, que pueden impedir el uso directo de un índice normal en algunos motores.

Datos de entrada

Consulta para revisar
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Pega la consulta problemática o representativa.
  2. Ejecuta el análisis.
  3. Revisa las columnas agrupadas por WHERE, JOIN, ORDER BY y GROUP BY.
  4. Contrasta cada sugerencia con el plan de ejecución y los índices existentes.

Qué hace esta herramienta para desarrolladores

Produce una checklist de investigación, no una sentencia CREATE INDEX automática.

Aplica expresiones regulares conservadoras para localizar columnas en patrones frecuentes y etiqueta la razón de cada candidata.

No existe una recomendación de índice fiable sin estadísticas, distribución de datos, plan de ejecución y carga real.

Ejemplo

SELECT * FROM orders o JOIN users u ON u.id=o.user_id WHERE o.status='paid' ORDER BY o.created_at; Candidatas: u.id, o.user_id, o.status, o.created_at

Casos de uso

  • Preparar una revisión antes de usar EXPLAIN.
  • Documentar por qué se investiga un índice.
  • Detectar columnas repetidas en filtros y joins.

Consejos para obtener resultados fiables

  • No crees un índice por cada columna detectada.
  • Busca índices compuestos existentes antes de añadir otros.
  • Mide el impacto en escrituras.
  • Prioriza planes de ejecución reales sobre heurísticas.
  • Considera cardinalidad y selectividad.

Detalles del procesamiento

El analizador separa varias secciones comunes de la consulta y acumula motivos por columna para evitar duplicados.

Subconsultas complejas, CTE avanzados, aliases ambiguos y expresiones propietarias pueden escapar a la extracción heurística.

Preguntas frecuentes

¿La checklist significa que debo crear todos los índices mostrados?

No. Solo identifica columnas que merecen revisión; la decisión debe basarse en EXPLAIN, selectividad e índices existentes.

¿Puede sugerir el orden de columnas de un índice compuesto?

No de forma fiable sin estadísticas y patrones de acceso. La herramienta solo agrupa señales de la consulta.

¿Detecta columnas usadas en JOIN?

Sí, busca igualdades comunes dentro de cláusulas ON y marca ambos lados como candidatas de revisión.

¿Qué significa detectar una función sobre una columna?

Funciones como LOWER o DATE pueden impedir el uso directo de un índice normal en algunos motores; conviene revisar índices funcionales o reescrituras.

¿Sustituye a EXPLAIN ANALYZE?

No. EXPLAIN o EXPLAIN ANALYZE con datos representativos es la referencia para evaluar planes e índices.

Módulos de la herramienta

MóduloFunción
Extractor de filtrosLocaliza comparaciones frecuentes en WHERE.
Extractor de joinsBusca igualdades en ON.
ChecklistAgrupa columnas candidatas y motivos sin emitir DDL.

Explorar la categoría

Continúa con otras utilidades de SQL, análisis de consultas y conexiones de base de datos.