MySQLとPostgreSQLは同じオープンソースのRDBMS(リレーショナルデータベース管理システム)だけど
そもそもRDBMSとは
RDBMS(リレーショナルデータベース管理システム)は、データベースを操作するためのシステム。
データベースのファイル構造の定義やデータの検索、更新、共有したり、データへのアクセス権限を管理したりできる。
下記の投稿でも記載したように様々な種類のRDBMSがある。
MySQLもPostgreSQLもどちらもオープンソースソフトウェアなので無料で利用できる。
MySQLは
もともと1995年に発売された後に2010年からOracle社が所有権を持ち開発やソースコード管理が行われている。
高性能かつ高い堅牢性ながら低コストで利用できるので個人から大企業まで利用されている。
MySQLには、大きく分けて無料版と商用版の2つがある。
無料版は、実験的な要素が組み込まれることもあり、商用版に比べ安定性が落ちることもある。
また、Oracle社によるサポートが受けられないので、わからないことは自分で情報を探す必要がある。
商用版は、ライセンスを購入する必要があるが、安定した環境が提供されていて、Oracle社によるサポート窓口などがある。
商用版には3つのパッケージがありそれぞれプロジェクトに適したものを選ぶ。
- MySQL Standard Edition
- MySQL Enterprise Edition
- MySQL Cluster Carrier Grade Edition
(パッケージの調査はいつか)
PostgreSQLは
1986年にカリフォルニアで開発されたPOSTGRESパッケージをベースに30年近くにわたり開発が続けられてきた。
現在でもPostgreSQLは開発者やサポート企業やボランティアからなる開発コミュニティが保守・開発を続けている。
MySQLよりも複雑・大量なデータの操作や管理を得意とする。
人気度
DB-ENGINESの人気DBMSランキングでは23年現在、
2位:MySQL(1115.24)・4位:PostgreSQL(636.86)となっていて
数年前はスコアに2倍以上の差があったけど現在では徐々にPostgreSQLの人気が高くなってきてその差は縮まってきているみたい。
何が違うのか?
- サポートしているSQL構文が違う
- MySQLでは使えないサブクエリがある。
- PostgreSQLはほぼ使える。
- 使用できるプログラミング言語の数が違う
- PostgreSQLのほうが多い。
- 処理方法(スピード)が違う
- MySQLはデータの読み込みに特化した場合かなり早いらしい。
- PostgreSQLは複雑なクエリでの膨大な量の読み書きでも優秀らしい。
- アーキテクチャが違う
- MySQLは純粋なリレーショナルデータベース
- PostgreSQLはオブジェクトリレーショナルデータベース
- サポート体制
- PostgreSQLは有志によるコミュニティのみ
- MySQLはコミュニティ+Oracle社による有償サポートがある
などなど。
現状、高速で簡単に管理・設定できて初心者でも安心して利用できることを求めるならMySQLがいいかも。
大量のデータを扱うプロジェクトで機能としても充実していることを求めるならPostgreSQLがいいかも。
まとめ
MySQLとPostgreSQLは機能的にも差がどんどんなくなってきてるらしい。
どちらのほうが自分で使いやすいかを確認するためにも、実際にどちらのDBMSも試してみたいと思う。