SELECTの場合では、INSERTと逆転して「PostgreSQLの方が圧倒的に速い」という結果になっている。
「“MySQLは検索が速い”とよく言われている。つまりMySQLではSELECTが速いと思われていた。しかし、PostgreSQLの方が速いという結果になった。このことについては、日本MySQLユーザ会の人たちとも“こういうことがあるんだね”と感心していた」
UPDATEでは、INSERTと似たような傾向を示しており、結果としてPostgreSQLの方が遅いという結果になっている。これは「PostgreSQLが追記型というアーキテクチャになっているから」という。追記型であることで、「UPDATEで書き換えを行わない。内部的に元のデータをDELETEしてINSERTすることをやっている」としている。
DELETEでの結果について同氏は、「PostgreSQLが全般的に速い」と語っている。「PostgreSQLでは、“削除”というフラグをつけているだけ。アーキテクチャの違いもあってPostgreSQLの方が速い」。
ベンチマークの2番目になる1サーバ1クライアントのテストにおいて、INSERTではPostgreSQLが遅く、SELECTではストアドプロシージャほどの差は開いていないものの、約1.5倍PostgreSQLの方が速いという結果だ(1024_8ではMySQLの方が速い)。
またUPDATEでは、単体テストと同じようにPostgreSQLが遅いという結果だ。しかし単体テストのようにMySQLとの差は1.5倍にはなっていないという。「クライアントとサーバに分けた場合、PostgreSQLとMySQLとの差は縮んでいる」。
「MySQLはクライアントとサーバに分けると、その性能は落ちる。MySQLは同じマシンだと速いということだ。セキュリティの問題は別として、MySQLを利用する場合、ウェブサーバとDBサーバを同じマシンにした方が、性能は良くなる」
その逆に、PostgreSQLであればローカルでも別々のマシンに分けても、性能が変わらないということになる。つまり「PostgreSQLのボトルネックは通信ではない」ということだ。
ちなみに、1クライアント1サーバのDELETEでは、PostgreSQLは遅いという結果になっている。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス