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

Takeshi Miyakawa tak @ hdt.co.jp
2003年 3月 9日 (日) 06:52:32 JST


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

Tsukasa Koizumi wrote:

>これも人から聞いた話なので、実感ではないのですが、Oracleはすごく速いと
>聞いてます。あくまで噂でしかありませんが…。
>
 僕は同一のサーバ上にOracle8、PostgresSQL7.0.3、MySQL3.23.36を動作させ
ています。
 その印象で言わせてもらえれば、OracleとPostgresの体感速度は大きく変わると
は思いません。それぞれに得意な処理があるという感じで、どちらかが一方的に
優れているという感触はないです。
 MySQLは、ロックやトランザクション、リファレンスが省略(あるいは制限)
されて
いるだけに非常に高速です。複数のアプリケーションから同時にアクセスしない場
合はMySQLで決まり、という感じですね。

>> 僕はPHPのことはほとんど何も知らないのですが、psqlから直接
>>SQLを適用した場合と速度が変わったりします? 速度が極端に
>>違うようならPHPのスクリプトに問題があると思います(コネクション
>>を毎回張りなおしているとか)。
>>
>
>私の印象では、若干遅いです。
>
 若干遅い、くらいならPHP側の問題ではないのかも知れませんね。

>ただし、単純な問い合わせであっても大量に集中すると、かなり重くなってき
>ます。この状態では、ウェブサーバのメモリ、CPUリソースの使用率に対して、
>DBサーバのリソース使用率が圧倒的に小さいことがわかっています。
>つまり、PostgreSQLの処理は瞬時に終っても、ウェブサーバがもたもたしてい
>る感じです。なので、PHPの問題も小さくはないだろうと思うのですが。。。
>
 まさかPHPがCGIとして機能していてモジュールになってない、なんてこと
はないですよね?

>現状では、リレーショナルなDB設計に固執する必要が無くなってきたので、
>MySQLへの乗り換えも検討中です。ただ、ここにも「本当にMySQLは速いのか?」
>という疑問が…。
>
 お試しになればわかりますが、圧倒的に速いです。体感速度でも圧倒的に違
います。比べるのもばかばかしいくらい違います。
 ただ、先ほども申し上げましたが、ロック、トランザクション、リファレンス
はサーバ
任せにはできません。ですから、複数のユーザーが同時に多数の表にアクセスし
ても参照整合性を維持しなければならないようなタスクには向きません。
 1台のサーバで完結する程度の、比較的単純なロジックのアプリケーションなら
ばMySQLに優るものは現時点ではないと思っています(僕はそういうアプリケー
ションを作ることが多いのです)。
 もっとも、仕様というものは次第に大きく、複雑になるものですから、最初は
トラン
ザクションなんか要らない……と思っていても、あとで必要になったりするわけです
が。

>ところで、「PHPで処理できるような要求」というところがちょっと気になっ
>たのですが、PHP以外の選択肢では何がよろしいと思われますか?
>jspもaspもさほど変わらないという認識だったのですが…。
>
>#PerlやCというのはナシで…(^^;
>  
>
 すでに申し上げましたが、僕はPHPのことはあまりよく知りません。
 HTMLにスクリプトを埋め込むというやり方はeRubyで試してみましたが、なんか
中途半端な感じがして、あまり利用していないです。どちらかというとテンプレート
としてHTML文書を用意してもらい、そこに実行時に置換すべきタグを埋め込ん
でやって、それをPerlなりRubyなりで加工する方が好きです。

# 僕はRuby使いですが、CGIにRubyは遅すぎると感じています....
# 現状でWebアプリケーションを構築するにはPerlだと思います。
# ServletやJSPは僕の仕事環境では重過ぎます。
# ASPは試したことがないのでわかりません。うちは零細企業なもので。

 それはそれとしまして、「PHPで処理できるような要求」と書いたのは、「Webア
プリケーションとして実用的に実現できる程度の要求」という程度の意味です。
Webでは一連の処理の途中でユーザーが作業を中断したり、接続が切れてし
まったり、といったことを(例外的な事態というより)「常に起きること」とし
て考え
ておかなければなりません。オフィス内で利用するデータベースアプリケー
ションとは条件が異なるわけです。
 そういう事情があるので複雑・大規模なトランザクションが生じるようなビジネ
スロジックには、Webアプリケーションはなじみにくいです。だから、そうではな
い、比較的単純なビジネスロジックなのだろうな、と想像したわけです。






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