[pgsql-jp: 33165] Re: PostgreSQL vs MySQL

Yasuo Ohgaki yohgaki @ ohgaki.net
2004年 6月 8日 (火) 12:12:34 JST


大垣です。

TANIDA Yutaka wrote:
>># ちなみに DELETE FROM foo WHERE bar > 100; のようなクエリはInnoDB
>># では禁句なようです。
> 
> 
> は?
> 
> # これはちょっと理解に苦しむ・・・

同感です。
上記の様なSQL文が常に実行されるシステムはそう無いとは思いますが
スループットが20分の1以下になる、とは普通は予想しませんよね...

# INDEXを張ってみると状況が変わるかもしれませんが..

> 
>>PostgreSQLの性能にはあまりばらつきが見られないし、ベンチマークの結果
>>も説明しやすい結果ですが、MySQLのベンチマークの結果は予想しづらい結果
>>です。InnoDBは単一レコード操作に対する最適化を最大限にするために離れ技
>>を使っているような感じの結果です。
> 
> 
>  「こういう話はRDBMS全般で通用するはずだ」と考えていたことも、やはり実
> 装によって全然違うこともある事実を突きつけられると、なかなか重いものがあ
> りますね。実に興味深いです。
> 
> #sqliteのinsertは、トランザクション内で実行しないと遅いとかも聞きますし
> 
>  しかしそう考えると、PostgreSQLの実装の、どちらかというと教科書通りに近
> い(教科書読んだことないけど)素直さ、というのは一つの美徳かもしれません
> ね。
> 

システムの動作/実装が解かりやすいと言うことは重要と思います。

# PostgreSQLに欠けている「解かりやすさ」本家、JPUGのWebサイト
# の「解かりやすさ」(必要な情報へアクセスのしやすさ)かな..


どんな物やサービスでも同じと思いますが、解かりやすさとポジティ
ブなユーザ体験は非常に重要と思います。

実装ではないですが7.5ではTCPソケットをデフォルトで聞くように
なるようで、個人的には好ましく思っています。

個人的にはデフォルトの最大接続数を少なくとも160までまで上げて
欲しいです。

理由はgoogleで
" mysql_pconnect(): Too many connections in" <- MySQL
"FATAL: sorry, too many clients already in" <- PostgreSQL
を検索して頂くと解かると思います。

Apacheのデフォルトのプロセス用に150接続, PostgreSQLスーパー
ユーザ接続に2接続、予備に8接続、と言う感じです。
PostgreSQLの場合、あまりスループットが落ちないのでデフォルト
は200接続でも良いくらいではと思っています。

# それにApacheの場合、接続はあってもクエリを実行していない
# ケースは多数あります。

デフォルト設定でこれらの問題を隠蔽することには異論はあると思
いますが、200接続でも動作するなら変なエラー(!?)を出すより多少
遅くても動作している方が何倍も重要と思います。

--
Yasuo Ohgaki





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