Ребят помогите пожалуйста с запросом.
Решил проект перевести на PostgreSQL (9.4). Но с этой базой пока на "вы". Создаю несколько индексов но в одном запросе индекс используется а в другом уже нет.
Ниже выборка, скажите по каким полям я должен поставить индекс?
genres и countries вроде как гин индекс должен быть?
- SELECT title FROM movies WHERE type='films' AND is_open=1 ORDER BY publish DESC LIMIT 10
- SELECT title FROM movies WHERE type='films' AND is_open=1 AND genres && ARRAY[1] ORDER BY publish DESC LIMIT 10
- SELECT title FROM movies WHERE type='films' AND is_open=1 AND genres && ARRAY[1] AND countries @> ARRAY[1] ORDER BY publish DESC LIMIT 10
- SELECT title FROM movies WHERE type='films' AND is_open=1 AND genres && ARRAY[1] AND countries @> ARRAY[1] AND year IN(2013,2014) ORDER BY publish DESC LIMIT 10
На данный момент такие индексы:
CREATE INDEX movies_genres_idx ON movies USING gin (genres)
CREATE INDEX movies_countries_idx ON movies USING gin (countries)
CREATE INDEX movies_type_open_idx ON movies USING btree (type, is_open)
CREATE INDEX movies_type_open_pub_idx ON movies USING btree (type, is_open, publish)