[pgsql-jp: 36442] Re: 複合インデックス時のORDER BY DESC
池上 俊介
shun @ baytime.com
2005年 11月 27日 (日) 12:16:19 JST
池上です。
福島さん。ありがとうございます。
この方法でsortが使われないことを確認することができました。
また、jのカラムがtimestampだった場合でも
('3000-1-1'::timestamp - pubdate)のような形でインデックスをつくることで
sortが使用しないことを確認できました。
とてもトリッキーなテクニックですね!
ありがとうございます。感謝です。
FUKUSHIMA Katsuaki wrote:
> 福島@現実逃避モードです。
>
> ORDER BY x DESC 高速化に対する直接の回答ではないですし、無茶な方法で
> す。過去にどうしても必要に迫られて使いました。当時いろいろ試行錯誤し
> てみたんですが、こんな方法しか思いつきませんでした。
>
> 以下のようなインデックスを作成しておいて、
> CREATE INDEX idx_articles_i_j_d ON articles(i,(0-j));
> データの抽出は、
> SELECT * FROM articles WHERE i = 30 ORDER BY i,(0-j) LIMIT 10;
>
> 正統解とは程遠いと思いますが、ご参考になれば。
>
> 池上 俊介 wrote:
>
>
>>メール末のarticlesテーブルに複合インデックスを作成し、
>>SELECT * FROM articles WHERE i = 30 ORDER BY j DESC LIMIT 10;
>>のような検索を高速化したいと思っています。
pgsql-jp メーリングリストの案内