2006年08月31日

PostgreSQL or Oracle

ぷち放置プレイ中だった検索エンジンをDB対応にしてみた。
今までブログやエントリーのメタ情報をメモリに持っていたけど、とうぜんメモリがいっぱいになれば動かない。と言うことでメタ情報をメモリに持たず、DBに保存して、必要になったときにSELECTしてブログインスタンスにし、それを使うようにした。

そしてWeb上からガンガンデータを落としつつ一晩動かしてみると・・・。
おーー!DB動かしてるマシンのCPUが100%に張り付いてる~!クロールプログラムがDB待ちでめちゃ遅い~~! orz
エントリーが20万件ほどで、もう使い物にならない程度に遅い・・・。これじゃメモリに保持した方がまだマシだったな。

使用しているDBはPostgreSQLの7.1.3なんだけど、やっぱPostgreSQLに巨大なテーブルは無理なんだろうか。以前Oracleを使ったシステムで100万件以上のデータでもサクサクだったからPostgreSQLもある程度はがんばってくれると思ったんだが・・・。
ちょっとWebで検索してみると、やっぱりPostgreSQLは巨大なデータには不向きのようだ。20万件で遅くなるのはチューニングしてないからだろうけど、半日データを集めただけでいっぱいいっぱいになるようではチューニングしても限界がありそうだ。

俺的にはPostgreSQLよりもOracleの方が知識はあるので(Oracleの資格、Oracle Silver持っててOracle Gold取ろうと勉強してた)、初歩的なチューニングならわかる。が、Oracleは鬼のように高い。不特定多数に公開できるライセンスで一番安いのが60万・・・。ゴクリ・・・。

う~む、DBに保存するのがエントリーのメタ情報だけだから、自分でDB的なモノを作った方が早いかもしれない。と言ってもこの場合のDB的なモノというのは単に転置ファイルなだけだけど。


まぁどっちにしろ今回のDBを使う化計画は失敗と言うことで。
今後の方針をまた考えねば。
大きなデータを扱おうとするといろいろ難しいなぁ。


追記
と思ったら普通に動き出した。
遅かったのは何なんだろう。再起動したわけでもなく、遅い状態からいきなり早い状態になった。
今のところDBマシンのCPU使用率は50%前後なので、もうしばらく様子を見てみる。

Trackback on "PostgreSQL or Oracle"

このエントリーのトラックバックURL: 

"PostgreSQL or Oracle"へのトラックバックはまだありません。

Comment on "PostgreSQL or Oracle"

"PostgreSQL or Oracle"へのコメントはまだありません。

Post a Comment

コメントする

コメント登録機能が設定されていますが、TypeKey トークンが設定されていません。