2007年4月12日木曜日

PostgreSQLのUPDATEの実態と、MySQLを早くする方法

 表題は陳腐だけど、中身は意外に面白かった記事の紹介。(リンク先は3ページ目。引用に使った文があるのが3ページ目だから。)

「PostgreSQLは遅い」は本当か?:OSSデータベース比較 - CNET Japan

 単純に速さを比較するだけじゃなくて、その理由を内部構造的観点から推測してるのがいい。さすがユーザー会の人たちだね。

 特に「へぇ」と思ったのはこの2点。

「PostgreSQLが追記型というアーキテクチャになっているから」という。追記型であることで、「UPDATEで書き換えを行わない。内部的に元のデータをDELETEしてINSERTすることをやっている」としている。

 そうなんだ。じゃあ、新規登録と更新を同じ箇所で行う時に、処理を簡潔にするためにUPDATEではくてDELETE&INSERTする(新規登録の場合はDELETEが空振りになる)のは負荷が高くなるかなぁとか心配してたのは無意味だったんだ。新規登録の場合はDELETEが無駄になるから意味はあるか。

「MySQLはクライアントとサーバに分けると、その性能は落ちる。MySQLは同じマシンだと速いということだ。セキュリティの問題は別として、MySQLを利用する場合、ウェブサーバとDBサーバを同じマシンにした方が、性能は良くなる」

 これは知らないとやっちゃいそう。サーバ構成を考える時は気をつけよう。

関連記事:
 MySQLのプレペアードステートメントはメモリレベルか?
 MySQLのデフォルトのストレージエンジンがInnoDBになる
 MySQLでURLからドメイン部分を抜き出す方法
 MySQL Query Browser がとても便利

0 件のコメント:

ブログ アーカイブ

tags