Индексы PostgreSQL - это избыточно? - PullRequest
1 голос
/ 20 августа 2010
CREATE INDEX alias_pub_idx2
  ON info.palias
  USING btree
  (publisher_id, player_id, pub_player_id);

CREATE INDEX alias_pub_idx3
  ON info.palias
  USING btree
  (player_id);

Первый включает три столбца;последний включает только один.Я думаю, что они избыточны - что достаточно первого индекса btree, но я не очень знаком с методами индексации PostgreSQL.Мысли? * * 1002

Ответы [ 3 ]

9 голосов
/ 20 августа 2010

Многоколоночные индексы PostgreSQL «упорядочены», что означает, что это будет избыточно, только если player_id был первым столбцом, упомянутым в alias_pub_idx2.

Это, однако, было бы излишним:

CREATE INDEX alias_pub_idx2
  ON info.palias
  USING btree
  (publisher_id, player_id, pub_player_id);

CREATE INDEX alias_pub_idx3
  ON info.palias
  USING btree
  (publisher_id); /* first column of another index => waste of space */
0 голосов
/ 20 августа 2010

ИСПОЛЬЗОВАНИЕ btree

Упорядочены индексы BTREE , поэтому ваш второй индекс избыточен: первый столбец одинаков и может использоваться во всех запросах, гдеplayer_id является условием.

0 голосов
/ 20 августа 2010

Ни один из индексов не делает другой избыточным - запрос к info.palias, который ищет определенные player_ids, предпочтет второй индекс по сравнению с первым, если publisher_id также не является критерием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...