0Pricing
PostgreSQL Performance & Query Optimization · Lección

Índices compuestos y de cobertura

Acelere las consultas con varias columnas mediante índices compuestos y elimine por completo las búsquedas en tablas usando índices de cobertura con INCLUDE.

Índices compuestos y de cobertura es una lección gratuita de PostgreSQL Performance & Query Optimization en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PostgreSQL Performance & Query Optimization, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PostgreSQL Performance & Query Optimization incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Beyond Single-Column Indexes

Many queries filter on more than one column. A composite index spans multiple columns and can serve such queries far better than separate single-column indexes.

Creating a Composite Index

List columns in the order you want them indexed.

CREATE INDEX idx_orders_cust_date
ON orders (customer_id, order_date);

Column Order Matters

A composite index on (a, b) helps queries filtering on a alone or a AND b, but generally NOT queries filtering only on b.

The Leftmost Prefix Rule

PostgreSQL can use any leftmost prefix of the index. So (a, b, c) serves filters on a, on a+b, and on a+b+c.

Ordering by Selectivity

Put the most selective or most frequently filtered column first, often an equality column before a range column, to maximize how many rows the index eliminates early.

CREATE INDEX idx_orders_status_date
ON orders (status, order_date);

The Heap Lookup Cost

A normal index scan finds matching rows then visits the table (the heap) to read the other columns. Those extra fetches cost I/O.

Covering Indexes

A covering index contains every column the query needs, so PostgreSQL answers from the index alone, an Index Only Scan, with no heap visit.

Using INCLUDE

The INCLUDE clause adds non-key columns to the index leaf pages so they are available without being part of the searchable key.

CREATE INDEX idx_orders_cust_incl
ON orders (customer_id)
INCLUDE (order_date, total);

Confirming Index Only Scan

Check the plan; you want to see Index Only Scan rather than Index Scan plus heap fetches.

EXPLAIN ANALYZE
SELECT order_date, total
FROM orders WHERE customer_id = 42;

The Visibility Map Caveat

Index Only Scans still need the heap when pages are not marked all-visible. Keeping tables well-vacuumed maintains the visibility map so scans stay index-only.

VACUUM ANALYZE orders;

Costs of Wide Indexes

More columns mean larger indexes and slower writes. Add covering columns only for hot queries, not everywhere.

Quick Check

Test what you have learned.

Recap

You learned how composite indexes serve multi-column filters under the leftmost prefix rule, how column order and selectivity matter, and how covering indexes with INCLUDE enable Index Only Scans, balanced against larger size and write cost.

Preguntas frecuentes

¿La lección «Índices compuestos y de cobertura» es gratis?

Sí — el texto completo de «Índices compuestos y de cobertura» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PostgreSQL Performance & Query Optimization, actualiza a CoddyKit PRO. El curso de PostgreSQL Performance & Query Optimization incluye 4 lecciones en total.

¿Qué aprenderé en «Índices compuestos y de cobertura»?

Acelere las consultas con varias columnas mediante índices compuestos y elimine por completo las búsquedas en tablas usando índices de cobertura con INCLUDE. Practicas PostgreSQL Performance & Query Optimization con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PostgreSQL Performance & Query Optimization?

No se requiere experiencia previa. PostgreSQL Performance & Query Optimization en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Índices compuestos y de cobertura»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PostgreSQL Performance & Query Optimization?

Sí. Cada lección de PostgreSQL Performance & Query Optimization incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos de los índices B-Tree
  2. Creación y uso de índices
  3. Cuándo y cómo crear índices
  4. Índices compuestos y de cobertura
← Volver a PostgreSQL Performance & Query Optimization