Su predicado agregado usa el LIKE
operador:
AND network LIKE '%'
El plan de consulta real depende de lo que pase en lugar de '%'. Pero, en general, los índices btree simples son inútiles para esto. Necesitará un índice de trigramas o usar la infraestructura de búsqueda de texto o similar, según los patrones que esté buscando.
Ver:
- PostgreSQL LIKE consultas de rendimiento
- Coincidencia de patrones con LIKE, SIMILAR TO o expresiones regulares en PostgreSQL
Incluso puede combinar varias estrategias de indexación. Ejemplo:
Si se supone que debe ser:
AND network = '<input_string>'
entonces, por todos los medios, usa realmente el =
operador, no LIKE
. Razones en orden ascendente de importancia:
- más corto
- menos confuso
- hace que el trabajo del planificador de Postgres sea más simple (un poco más barato)
-
correcto
Si pasa una cadena con caracteres especiales sin darse cuenta, es posible que obtenga resultados incorrectos. Ver: