[pgsql-jp: 29315] Re: パフォーマンス向上策

Takeshi Miyakawa tak @ hdt.co.jp
2003年 3月 9日 (日) 05:20:42 JST


 みやかわ@ホビー・データです。

# お互い、こんな時間に仕事してるわけですか...

Tsukasa Koizumi wrote:

>○最初のバージョン(2002年9月)
>ユーザ個々のデータを、
>
>  ・認証
>  ・プロフィール
>  ・ステータス
>  ・フラグ
>  ・金銭系ステータス、ポイント
>  ・決済履歴
>
>の5つのテーブルに分け、リレーショナルな作りにした。
>
>が、ユーザ数が4〜5千を超えたあたりから、「決済履歴の表示が遅い!」とク
>レームあり。
>
>マシンが非力(single celeron 800MHz)だったので、ハードウェアのアップ
>グレードを提案したが、却下(T_T)。
>仕方ないので、大急ぎでDBを組み直す。
>
>この時点で、サイト管理者レベルで、全ユーザの決済履歴を一覧するような話
>はなく、あくまでユーザ毎に表示するだけ。
>
>
>○2番目のバージョン(2002年12月)
>ユーザ毎に決済履歴テーブルを作るように変更。
>ユーザ毎の決済履歴検索を速くするには、これしかない…という苦肉の策。
>
>
>○現行バージョン(2002年2月)
>ユーザーが2万を超えた当たりから、動作が著しく遅くなる。
>その上、全ユーザの決済履歴を検索、一覧したいとの要望。
>
>高速化に四苦八苦している間に、日々会員数は増え続け、現在に至る(涙)
>  
>
 どうもよくわからないのですが、うちではもっと非力なマシンで2万人
ばかりの顧客情報をOracle 8で処理しています。PostgreSQLより劇的
に速いということはないと思っているのですが、パフォーマンスが問題
になったことはありません(それ以前にPentium 100 MHz、デュアルプ
ロセッサ、RAM 48MBという、信じられないようなスペックのサーバで
Oracle 7を長年使っていたので、そのギャップから、過剰に快適だと
信じているのかも知れませんが)。

>JDBCは速い!とよく聞くのですが、これって本当のところはどうなのでしょう
>か。人によっては、「圧倒的に速い」といった表現をすることもあって、期待
>しているのですが…。
>
>PHPのPgsqlモジュールより速いならば、採用の価値はあるかと思ってます。
>
>#PHPのPgsqlモジュールは、著しく遅い気がしてます(^^;
>  
>
 うーん...
 JDBCがネイティヴ接続より速いなんてことはないと思うのですが。

 僕はPHPのことはほとんど何も知らないのですが、psqlから直接
SQLを適用した場合と速度が変わったりします? 速度が極端に
違うようならPHPのスクリプトに問題があると思います(コネクション
を毎回張りなおしているとか)。もしPHPとpsqlとで速度が変わらな
いならJDBCを使っても関係ないでしょう。PostgreSQL内部の問
題です。

 データベースはパフォーマンスに影響を与える要素が非常に
多いので、どんな仕様でも通用するような「一般論」はあまり多く
ないように思います。JDBCなら速い、ってのは妙な理解のような...

 ついでに言わせてもらえれば、PHPで処理できるような要求で、
とにかくパフォーマンスをあげたい、ということだったらMySQLあたりに
乗り換えた方がいいんじゃないでしょうか。
 PostgreSQLの強みは標準への準拠や、高機能性ですよね。リレー
ションに頼らずにアプリケーション構築をするなら、PostgreSQLを利用
する理由はないと思います。





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