Bergantung pada kondisinya, mungkin secara logis tidak mungkin menggunakan indeks apa pun untuk membantu kondisi yang kompleks menggunakan OR
ekspresi.
Seperti MySQL, PostgreSQL 8.0 dan status sebelumnya dalam dokumen tentang indeks :
Dengan PostgreSQL 8.1, ini berubah .
Namun, jika ini tidak membantu, Anda dapat menggunakan UNION
solusi yang Anda coba (ini adalah solusi umum untuk pengguna MySQL, yang terus memiliki batasan satu indeks per tabel).
Anda harus dapat memesan hasil UNION
kueri, tetapi Anda harus menggunakan tanda kurung untuk menentukan bahwa ORDER BY
berlaku untuk hasil UNION
, bukan hanya ke subkueri terakhir dalam rantai.
(SELECT ... )
UNION
(SELECT ... )
UNION
(SELECT ... )
ORDER BY columnname;
Semoga membantu; Saya bukan ahli dalam pengoptimal PostgreSQL. Anda dapat mencoba menelusuri arsip milis , atau bertanya di saluran IRC .