一回折れた人

日々の出来事をつらつらと

MySQLとpostgreSQLの違いは何か?

MySQLpostgreSQLの違い(アーキテクチャ)は何か?こんなことを聞かれました。 僕が知っている違いと言えば、postgreSQLは論理削除を行っているくらいでした。(その場では答えられませんでしたが・・・)

僕の中での2つのRDBの使い分けは基本的にMySQLを使って、postgreSQLはジオメトリ型を扱う時くらいしか使用していませんでした。

MySQLのお話し

少しだけMySQLを整理すると、現在MySQLはWスタンダート?2つの方式からテーブル作成を行えます。 MySQLには「MyISAM」、「InnoDB」を選択できることは知っていました。 おそらく何も設定せずにMySQLでテーブルを作成すると、「InnoDB」になるハズです。

これはDBを読み書きする時の利便性で「InnoDB」の方が管理しやすいためだと思われます。 ・InnoDB:レコード単位でロック ・MyISAM :テーブル単位でロック + トランザクション機能が無い? こう見ると、MyISAM を選ぶ理由が見つかりませんが、バックアップの容易さはMyISAMの方が上のみたいです。(もしかするともうInnoDBの方が上かもしれませんが・・・)

MySQLpostgreSQLの違いは?

MySQL単体だけでも結構な違いがありますが、MySQLpostgreSQLの違いは? 調べたところ、大きそうなところは、 ・MySQL:マルチスレッド ・postgreSQL:マルチプロセス 最近のLinuxの仕組みだとマルチスレッドの方が有利みたいです。 それと「postgreSQL」は追記型なので、何度も同じレコードを更新すると容量を食うようです、この辺は考えて使う必要がありそうですね。 ちなみに「postgreSQL」のロック方式ですが、レコード単位の他色々オプションがあるようです。

もっと深堀する必要はありますが、なかなか調べる機会が無いので勉強になりました。

参考:PostgreSQLとMySQLはどちらかに明確な優位性がありますか? 参考:データベースの比較 参考:運用視点なMyISAMとInnoDBと。 参考:MySQLの「InnoDB」と「MyISAM」についての易しめな違い 参考:PostgreSQLのロック