sql >> Base de Datos >  >> RDS >> PostgreSQL

Indexación avanzada que involucra condiciones OR-ed (pgsql)

Dependiendo de las condiciones, puede ser lógicamente imposible usar cualquier índice para ayudar a una condición compleja usando OR expresiones

Al igual que MySQL, PostgreSQL 8.0 y estados anteriores en sus documentos sobre índices :

Con PostgreSQL 8.1, esto ha cambiado .

Sin embargo, si esto no ayuda, puede usar UNION solución que probó (esta es una solución común para los usuarios de MySQL, que sigue teniendo una limitación de un índice por tabla).

Debería poder ordenar los resultados de una UNION consulta, pero debe usar paréntesis para especificar que ORDER BY se aplica al resultado de UNION , no solo a la última subconsulta de la cadena.

(SELECT ... )
UNION
(SELECT ... )
UNION
(SELECT ... )
ORDER BY columnname;

Espero que esto ayude; No soy un experto en el optimizador de PostgreSQL. Puede intentar buscar en los archivos de la lista de correo , o preguntando en el canal IRC .