Índices parciales en SQL
Si la consulta siempre filtra igual, el índice no necesita las demás filas.
CREATE INDEX orders_pending
ON orders (placed_at)
WHERE status = 'pending';
EXPLAIN QUERY PLAN
SELECT
id,
placed_at
FROM orders
WHERE status = 'pending'
ORDER BY placed_at;
Cómo funciona
- Un
WHEREen elCREATE INDEXindexa solo las filas que coinciden. - Índice más chico, escrituras más baratas, y útil para exactamente una forma de consulta.
- El planificador lo usa solo cuando el filtro de la consulta implica el del índice.
Palabras clave y builtins usados aquí
BYCREATEEXPLAINFROMINDEXONORDERSELECTWHERE
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 173
- Tokens
- 30
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 20 segundos.
Paso 3 de 5 en Índices; paso 5 de 17 en Planes y rendimiento.