[pgsql-jp: 36445] Re: 複合インデックス時のORDER BY DESC

Kuniteru Asami asami @ aqua-systems.co.jp
2005年 11月 27日 (日) 21:48:49 JST


こんばんは、浅見です。

ちょうどIT Proの最新のPostgreSQLウォッチで石井さんが紹介されて
います。

オペレータクラスを作ってそれを使ったインデックスを作成するとい
うものです。

詳細は
http://itpro.nikkeibp.co.jp/article/COLUMN/20051117/224817/?P=5
をご参照ください。(会員登録が必要)

私の環境でちらっと試したところ、1本目のものに関してはソートし
ちゃいますが、2本目はソートされなくなりました。

Date: Sun, 27 Nov 2005 09:24:23 +0900
From: 池上 俊介 <shun @ baytime.com>さん

> 池上です。はじめまして。
> 
> メール末のarticlesテーブルに複合インデックスを作成し、
> SELECT * FROM articles WHERE i = 30 ORDER BY j DESC LIMIT 10;
> のような検索を高速化したいと思っています。
>....snip....
> 上記を参考に
> SELECT * FROM articles WHERE i = 30 ORDER BY j DESC LIMIT 10;
> SELECT * FROM articles WHERE i = 30 ORDER BY i,j DESC LIMIT 10;
> と行いましたが、sortが発生してデータ量が大きくなるほど遅くなります。
> なおDESCをつけない以下は高速です。
> SELECT * FROM articles WHERE i = 30 ORDER BY i,j LIMIT 10;
> 
> DESCをつけた状態でもsortを発生させずに
> 高速化する方法ありませんでしょうか?
>....snip....

0---------0---------0---------0---------0---------0---------0
00 浅見 城輝
0-0 mailto:asami at aqua-systems.co.jp
0--0 http://www.fiberbit.net/user/kunyami/postgresql/




pgsql-jp メーリングリストの案内