¿Qué es un índice SQL y cuándo acelera una consulta?
Publicado el 2026-10-26 por frfrand
Índices de bases de datos explicados: búsquedas, EXPLAIN, escrituras y errores al indexar todo.


Un índice de base de datos es una estructura adicional que ayuda a localizar registros sin revisar necesariamente toda una tabla. Puede acelerar consultas, pero ocupa espacio y añade trabajo en determinadas escrituras.
Una forma sencilla de entenderlo
Buscás una palabra en un libro de mil páginas. Podés leerlo de principio a fin o utilizar el índice del final. Las bases de datos aplican ideas comparables mediante estructuras que organizan claves y referencias a datos.
¿Cómo funciona en la práctica?
En PostgreSQL son comunes los índices B-tree, que funcionan bien con muchas búsquedas por igualdad y rangos. Hay otros tipos, como GIN o GiST, para casos diferentes. El planificador decide cuándo utilizar un índice según la consulta, las estadísticas y el coste estimado. Crear un índice no obliga a utilizarlo siempre.
Lo que no resuelve y sus límites
Indexar cada columna sin pensar puede empeorar inserciones y actualizaciones y consumir almacenamiento. Un índice compuesto tiene un orden de columnas que importa para las consultas. Y si una consulta devuelve gran parte de la tabla, escanear los datos directamente puede ser más eficiente que utilizar un índice.
Cómo aplicarlo y comprobarlo sin sorpresas
Identificá primero una consulta lenta y ejecutá EXPLAIN o, con precaución, EXPLAIN ANALYZE en un entorno adecuado. Revisá filtros, ordenación y volumen. Probá el índice con datos representativos y compará los planes antes y después. Evitá cambios apresurados en producción, donde ciertos tipos de creación pueden bloquear operaciones.
¿Cómo aparece en ArduMaker?
En una base PostgreSQL gestionada para una aplicación en ArduMaker, los índices se diseñan y mantienen desde la propia base de datos. Mejorar una consulta suele aportar más que aumentar el tamaño del VPS sin entender el cuello de botella.
Un índice no reemplaza una consulta correcta
Imaginá una tabla de pedidos con millones de registros y una búsqueda por cliente y fecha. Un índice adecuado puede evitar recorrer datos innecesarios. Pero si el programa solicita todos los pedidos para filtrarlos después en JavaScript, el índice no corrige el volumen de información transferida.
¿Qué pasa cuando actualizás datos?
El motor también tiene que mantener sus índices cuando se insertan, modifican o borran filas relevantes. Por eso una tabla con decenas de índices innecesarios puede escribir más lentamente. Antes de crear otro, revisá índices existentes, consultas frecuentes y el plan de ejecución; el objetivo es mejorar la carga real, no maximizar un contador de índices.
¿Cómo comprobar si un índice ayudó?
En PostgreSQL podés comparar planes con EXPLAIN y, con cuidado, EXPLAIN ANALYZE para observar una ejecución real. Tené presente que este último ejecuta la consulta: en operaciones que modifican datos hay que tomar precauciones especiales. Mirá filas procesadas, tiempo y estrategia elegida. Un índice útil sobre una columna muy selectiva puede ayudar; otro que casi no filtra puede ser ignorado por el planificador.
Para recordar
Un índice de base de datos es una estructura adicional que ayuda a localizar registros sin revisar necesariamente toda una tabla. Entender cuándo se aplica, cómo falla y qué datos revisar es más útil que memorizar comandos sueltos.
Para ampliar: PostgreSQL: Introduction to Indexes.