Indexar una expresión en SQL
No puedes indexar una columna y luego buscar una función de ella. Indexa la función.
CREATE INDEX customers_email_lower
ON customers (LOWER(email));
EXPLAIN QUERY PLAN
SELECT
id,
name
FROM customers
WHERE LOWER(email) = 'ada@example.com';
Cómo funciona
- Un índice de expresión guarda el valor calculado, así la búsqueda puede usarlo.
- La consulta tiene que escribir la expresión exactamente como la escribe el índice.
- La expresión debe ser determinista — nada de
CURRENT_TIMEniRANDOM.
Palabras clave y builtins usados aquí
CREATEEXPLAINFROMINDEXLOWERONSELECTWHERE
El intento, en números
- Líneas
- 9
- Caracteres a escribir
- 154
- Tokens
- 29
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 19 segundos.
Paso 4 de 5 en Índices; paso 6 de 17 en Planes y rendimiento.