水曜以外もどうでしょう

北海道発。食べ歩きの記録グルメ情報や北海道の見どころなどをメモ替わりに書いています。

PREV | PAGE-SELECT | NEXT

≫ EDIT

postgresqlで”select count(*) from table_name”が遅い対応

テーブルの行数を数えたい場合、以下のように数えているのだが、どうも最近遅いことに気づく。
いや、前から薄々感じていたのだが、ちゃんと調べることができず。

select count(*) from table_name;

たかだか1,000行ぐらいのテーブルだ。

それでも時間がかかっていて、ぜひ速くしたい。


web上の情報を探してみると、where条件を付けてあげると速くなるようで。
でも、無条件に全部数えたいから、whereは付けにくいのだが。。

該当のテーブルはIDっぽい物を振っていて、sequenceで管理しているので、

select count(*) from table_name where id>0;

と、idは正の整数なんで、全部検索されるハズの一見意味のない条件を付けてみる。


これが効果があるようで、速度が劇的に改善。

\timing

での計測で、200倍近く高速になった。
うれしい。


どうしてこんな結果になるのか、indexやらなにやら、データベースについて勉強のしがいがある課題だけど。
今は深追いせず、結果だけを受け入れよう。

いつか調べたいなー。




スポンサーサイト
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| データベース | 20:11 | comments:0| trackbacks:0| TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://vmemo.blog36.fc2.com/tb.php/421-2232fc70

TRACKBACK

PREV | PAGE-SELECT | NEXT