LoginSignup
126
139

More than 3 years have passed since last update.

主なRDB(Oracle, MySQL, PostgreSQL)の機能比較

Last updated at Posted at 2019-10-10

全国で利用されているDBの分布は以下のようになっているらしいです。
スクリーンショット 2019-10-11 2.07.32.png

この中でも特に、Oracle, MySQL, PostgreSQLに焦点をあててそれぞれの機能を簡単に比較したので、それをまとめました。

Oracleの主な特徴

  • Oracle社が開発・販売する商用RDBMS

行レベルロック

  • 複数のユーザーが同一の表の別の行に同時にアクセスするのでパフォーマンスが高い

読み取り一貫性

  • ダーティ・リード(更新前の情報と更新後の情報の両方を取得)が発生しないように、更新前データのみを取得する

堅牢性

  • Oracle Data Guardと呼ばれる、災害時やデータ破損時などあらゆる障害からデータベースを保護し、サービスの継続を可能にするシステムが存在している

移植性

  • Oracle Databaseは全てC言語で書かれいているので、幅広い運用が可能
  • 管理や開発の効率化のための様々なツールが利用できる

その他特徴

  • トランザクションが自動的に開始する
  • DDL(データ定義言語)やDCL(データ制御言語)の実行後に、コミットが自動的に行われる

MySQL, PostgreSQLとの比較

  • MySQLは、MySQL ABが開発したRDBMSだが、現在の管理運営はOracle社が行っている
  • PostgreSQLは、PostgreSQL Global Development Groupによって開発が行われている

ライセンスの違い

  • Oracleは高機能高性能のため圧倒的に高いです
  • PostgreSQLはオープンソースソフトウェア

スクリーンショット 2019-10-11 2.06.29.png

派生したDBの種類

  • PostgreSQLとMySQLは派生したデータベースが多く存在し利用されています。

スクリーンショット 2019-10-11 2.20.01.png

ストレージアーキテクチャの違い

  • OracleやMySQLが「更新型」のアーキテクチャなのに比べて、PostgreSQLはストレージの管理方法が「追記型」のため、既存のデータの書き換えを行うことなく空いている領域を使って更新データを追記している
    • 更新型 : 対象レコードをそのまま更新
    • 追記型 : 既存レコードを保持したまま、新規レコードを追加して参照先を変更
      • なお、データ量についてはバキューム機能(VACUUM)により解決しているそう

スクリーンショット 2019-10-11 2.26.34.png

データベースの機能比較

  • データ型や命名規制, 書式等はそれぞれ異なる形式になっているが大きな差は無い
  • Oracleはチェック制約があるが、MySQLではトリガーで実装する必要がある
  • OracleにはシーケンスがあるがMySQLにはなく、代わりに自動インクリメントで定義
  • Oracleはシノニム(オブジェクトに対する別名を定義)があるのに対し、MySQLとPostgreSQLには無い
  • OracleはNULLと空文字は同一判定だが、MySQLとPostgreSQLでは別枠
  • Oracleはトランザクションは任意単位だが、MySQLとPostgreSQLは基本的にSQL文単位で確定
  • その他、実行計画の違いやヒント句の有無など

スクリーンショット 2019-10-11 2.27.53.png

参考資料

知ってるようで知らない!Oracle(オラクル)とは
2017年データベースの選択は
SQLの観点から「Oracle Database」「PostgreSQL」「MySQL」の特徴を整理しよう
PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較!

126
139
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
126
139