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"へのトラックバックはまだありません。
"PostgreSQL or Oracle"へのコメントはまだありません。