{"schema_version":"1.0","type":"Article","canonical_url":"https://visteesto.com/nota/indice-base-datos-que-es-cuando-crear","machine_urls":{"markdown":"https://visteesto.com/ai/article/indice-base-datos-que-es-cuando-crear/markdown","json":"https://visteesto.com/ai/article/indice-base-datos-que-es-cuando-crear/json"},"publisher":{"name":"VisteEsto","url":"https://visteesto.com","editor":"Martín Rodríguez","editorial_policy":"https://visteesto.com/politica-editorial","corrections_policy":"https://visteesto.com/correcciones"},"headline":"Índice de base de datos: qué es y cuándo conviene crearlo","description":"Qué es un índice de base de datos, cuándo conviene crearlo y cómo comprobar si acelera una búsqueda. La guía explica columnas, planes, espacio y trabajo de escritura.","dek":"Los índices permiten encontrar filas sin recorrer toda una tabla, aunque cada índice debe mantenerse cuando cambian los datos. Crear uno útil depende de las consultas reales, el orden de columnas y el plan elegido por la base.","language":"es","section":"Tecnología","topic":"indices-bases-datos-consultas","tags":["Bases de datos","Programación","SQL","Tecnología"],"author":{"name":"Martin Rodriguez","profile_url":"https://visteesto.com/autor/martin-rodriguez"},"date_published":"2026-09-26T12:00:00.000Z","date_modified":"2026-09-26T12:00:00.000Z","search_intent":"service","content_format":"service","primary_query":"qué es un índice de base de datos y cuándo crearlo","intended_audience":"Personas que desarrollan aplicaciones y necesitan mejorar consultas SQL sin llenar la base de índices innecesarios.","original_contribution":"VisteEsto convierte la documentación de PostgreSQL y SQLite en una checklist para elegir columnas, medir planes y revisar el costo de mantenimiento.","key_facts":[{"statement":"Los índices permiten encontrar filas sin recorrer necesariamente toda una tabla, pero agregan trabajo de mantenimiento a las escrituras.","evidence_url":"https://www.postgresql.org/docs/current/indexes-intro.html"},{"statement":"PostgreSQL ofrece varios tipos de índice y el tipo elegido depende de los operadores y consultas que se usarán.","evidence_url":"https://www.postgresql.org/docs/current/indexes-types.html"},{"statement":"El orden de las columnas de un índice multicolumna influye en las consultas que puede acelerar.","evidence_url":"https://www.postgresql.org/docs/current/indexes-multicolumn.html"},{"statement":"El planificador de SQLite usa índices para evitar recorridos completos cuando el costo estimado lo justifica.","evidence_url":"https://www.sqlite.org/queryplanner.html"}],"sections":[{"heading":"Qué es un índice","paragraphs":["Un índice es una estructura auxiliar que ayuda a una base de datos a encontrar filas sin recorrer todos los registros de una tabla. Se parece al índice de un libro: guarda una representación ordenada de una o más columnas y una referencia hacia la fila que contiene el dato. El motor decide si usarlo según la consulta y el costo estimado.","La ventaja aparece en lecturas selectivas. Buscar un usuario por un identificador único puede evitar un recorrido completo cuando la tabla crece. La consulta sigue necesitando leer la fila, pero el índice reduce el trabajo para localizarla. Un índice no cambia el resultado ni corrige una consulta mal formulada.","El costo está en el mantenimiento. Al insertar, modificar o borrar una fila, la base también debe actualizar cada índice que depende de las columnas afectadas. Los índices ocupan disco y pueden aumentar el trabajo de escritura. Por eso crear uno para cada campo no es una estrategia segura."]},{"heading":"Cómo elegir las columnas","paragraphs":["Empezá por las consultas que realmente ejecuta la aplicación: filtros, uniones, ordenamientos y búsquedas por rango. Una columna usada en un `WHERE` puede beneficiarse, pero la utilidad depende de cuántas filas descarta, del orden de las condiciones y de la distribución de sus valores.","En un índice multicolumna importa el orden. Un índice sobre `(cliente_id, creado_en)` suele ser útil cuando la consulta comienza por `cliente_id` y después filtra o ordena por fecha. El mismo índice puede aportar poco a una consulta que sólo busca por `creado_en`, porque el primer campo no está restringido.","La selectividad es una señal, no una regla aislada. Una columna con pocos valores distintos puede filtrar poco; aun así puede ayudar junto con otra columna o en un índice parcial. El motor también considera el tamaño de la tabla, la cantidad de filas esperadas y si necesita devolver casi todos los registros."]},{"heading":"Cómo comprobar si ayuda","paragraphs":["Medí la consulta antes y después con el plan que ofrece tu motor. En PostgreSQL, `EXPLAIN` y `EXPLAIN ANALYZE` muestran el camino elegido y los tiempos observados; en otros motores hay herramientas equivalentes. No confundas un plan que menciona el índice con una mejora garantizada: compará filas leídas, tiempo y costo bajo una carga representativa.","Probá valores comunes y extremos. Un índice puede ser útil para una búsqueda que devuelve pocas filas y no cambiar nada cuando el filtro coincide con gran parte de la tabla. La caché, las estadísticas y el tamaño de la tabla también influyen, por lo que una prueba de una sola ejecución puede ser engañosa.","Revisá que la consulta no aplique una función o una conversión que impida usar el orden del índice. Si el motor necesita ordenar, combinar tablas o leer muchas columnas, un índice distinto puede ser más adecuado. La decisión debe quedar registrada junto con la consulta que la motivó."]},{"heading":"Qué revisar antes de agregarlo","paragraphs":["Confirmá que no exista ya un índice que cubra la misma consulta. Dos índices con el mismo prefijo pueden duplicar espacio y mantenimiento sin mejorar el plan. Revisá también las restricciones `PRIMARY KEY` y `UNIQUE`, que suelen crear índices automáticamente según el motor.","Calculá el impacto sobre escrituras y despliegues. Crear un índice grande puede bloquear o consumir recursos; usá las opciones concurrentes o en línea que ofrezca tu base cuando corresponda. Después monitoreá tamaño, uso y consultas lentas para decidir si debe mantenerse.","Un índice acelera un camino concreto, no reemplaza un modelo de datos razonable. Esta guía de VisteEsto propone partir de consultas reales, probar con planes y medir el costo total. La documentación oficial de PostgreSQL y SQLite sirve para confirmar la sintaxis y las decisiones específicas de cada motor."]}],"sources":[{"name":"PostgreSQL: Introduction to indexes","url":"https://www.postgresql.org/docs/current/indexes-intro.html","kind":"primary"},{"name":"PostgreSQL: Index types","url":"https://www.postgresql.org/docs/current/indexes-types.html","kind":"primary"},{"name":"PostgreSQL: Multicolumn indexes","url":"https://www.postgresql.org/docs/current/indexes-multicolumn.html","kind":"primary"},{"name":"SQLite: The query planner","url":"https://www.sqlite.org/queryplanner.html","kind":"primary"}],"primary_source_gap":null,"images":[{"url":"https://visteesto.com/media/indice-base-datos-que-es-cuando-crear/cover.jpg","alt":"Tabla de datos y estructura de índice que acelera una búsqueda","width":1200,"height":675,"creator":"VisteEsto","license":"VisteEsto editorial","licenseUrl":"https://visteesto.com/terminos","sourceUrl":"https://visteesto.com/nota/indice-base-datos-que-es-cuando-crear","caption":"Ilustración editorial: un índice ordenado ayuda a encontrar filas sin recorrer toda la tabla."},{"url":"https://visteesto.com/media/indice-base-datos-que-es-cuando-crear/inline-1.jpg","alt":"Columnas destacadas de una tabla que forman un índice","width":1200,"height":800,"creator":"VisteEsto","license":"VisteEsto editorial","licenseUrl":"https://visteesto.com/terminos","sourceUrl":"https://visteesto.com/nota/indice-base-datos-que-es-cuando-crear","caption":"Ilustración editorial: elegir el orden de columnas depende de las consultas reales."},{"url":"https://visteesto.com/media/indice-base-datos-que-es-cuando-crear/inline-2.jpg","alt":"Lecturas rápidas y trabajo adicional de escritura en una base de datos","width":1200,"height":800,"creator":"VisteEsto","license":"VisteEsto editorial","licenseUrl":"https://visteesto.com/terminos","sourceUrl":"https://visteesto.com/nota/indice-base-datos-que-es-cuando-crear","caption":"Ilustración editorial: cada índice mejora un camino de lectura y suma mantenimiento."}],"videos":[],"update_log":[{"date":"2026-09-26T12:00:00.000Z","note":"Publicación inicial basada en la documentación oficial de PostgreSQL y SQLite sobre índices y planes de consulta."}],"citation_guidance":{"preferred_url":"https://visteesto.com/nota/indice-base-datos-que-es-cuando-crear","include":["headline","author","date_published_or_modified","preferred_url"]}}