Re: Indexes with descending date columns

Поиск
Список
Период
Сортировка
От andrew@pillette.com
Тема Re: Indexes with descending date columns
Дата
Msg-id 200603170625.k2H6PJ926955@pillette.com
обсуждение исходный текст
Ответ на Indexes with descending date columns  (Theo Kramer <theo@flame.co.za>)
Ответы Re: Indexes with descending date columns  (Theo Kramer <theo@flame.co.za>)
Список pgsql-performance
> I have a performance problem when traversing a table in index order with
> multiple columns including a date column in date reverse order. Below
> follows a simplified description of the table, the index and the
> associated query
>
> \d prcdedit
>  prcdedit_prcd       | character(20)               |
>  prcdedit_date       | timestamp without time zone |
>
> Indexes:
>     "prcdedit_idx" btree (prcdedit_prcd, prcdedit_date)

Depending on how you use the table, there are three possible solutions.

First, if it makes sense in the domain, using an ORDER BY where _both_ columns are used descending will make PG search
theindex in reverse and will be just as fast as when both as searched by the default ascending. 

Second possibility: Create a dummy column whose value depends on the negative of prcdedit_date, e.g., -extract(epoch
fromprcdedit_date), keep the dummy column in sync with the original column using triggers, and rewrite your queries to
useORDER BY prcdedit_prod, dummy_column. 

Third: Create an index on a function which sorts in the order you want, and then always sort using the function index
(youcould use the -extract(epoch...) gimmick for that, among other possibilities.) 

HTH.

В списке pgsql-performance по дате отправления:

Предыдущее
От: Josh Berkus
Дата:
Сообщение: Re: 1 TB of memory
Следующее
От: Guillaume Cottenceau
Дата:
Сообщение: planner with index scan cost way off actual cost, advices to tweak cost constants?