DBエンジン 知っておきたいDBの種類と特徴一覧
今回は、久しぶりにDBエンジンについて軽く調べたのでメモ程度に残しておく事にしました。
DBエンジンはいろいろな種類があり、開発現場では普段から使用しているDBエンジンを使いがちですが、意外と別のDBエンジンが自分にマッチしていたりもするので、サラッと見れるようにまとめました。
あくまで調査内容を残しているだけなので、
もしかしたら間違いがあるかもしれないです。ご了承ください。
MySQL,PostgreSQL,MariaDB...など様々なDBエンジンがありますが、『結局どれがいいんだろう?』と悩む事があります。今回は、有名なDBエンジン6つのそれぞれの特徴を調べて、サラッと見て分かるようにまとめましたので、今悩んでいる方はぜひこの記事を参考にしてベストなDBエンジンを利用してください。
ちなみに、筆者はPostgreSQL派です。
✅今回の内容
- Oracle
- MySQL
- MariaDB
- PostgreSQL
- SQL Server
- Amazon Aurora
✅メイン内容
🛠 Oracle
フルマネージド型のDBエンジン。
Oracleには以下の特徴がある。
- サービス中断時などにバックアップデータをスタンバイさせておく事で高い堅牢性を得る
- レコードレベルで排他制御を行えるので、同時に多くのユーザが利用できる
- 検索時点のデータを読み取る事ができる『読み取り一貫性』があり、
アンマッチを防ぐ事が可能 - C言語で出来ているので、拡張機能などプラットフォームにマッチしやすい
OracleはWindowsまたはLinux上で動作する。
有償版は高価だが、多彩なオプションを搭載することが可能。
開発者(等)用の無料リリースがあるみたい。
🛠 MySQL
オープンソース型のDBエンジン。
MySQLには以下の特徴がある。
- ほぼ全てのOSに対応している
- 学習用から大規模なシステムまで柔軟に対応可能
- 開発しやすくシンプルで速いのでWebサービスなどで利用しやすい
MySQLは無償版と有償版がある。
無償版ではサポートを受けたり、有償版ほど安定はしない。
🛠 MariaDB
MySQLの開発者が作成したOSSのDBエンジン。
MariaDBには以下の特徴がある。
- レプリケーションの並列処理による性能向上
- 複数マスターのレプリケーション
- 大規模データの分析や集計に最適
MariaDBは無料で誰でも使用する事ができる。
レプリケーションにより複数のDBをあたかも1つのDBかのように見せており、トランザクションに素早く対応する事が可能。
🛠 PostgreSQL
PostgreSQLはオブジェクト指向のRDB。
PostgreSQLには以下の特徴がある。
- 信頼性・規格適合性がかなり高い(真のACID特製を持つ)
- 高品質なSQLプログラミング言語
- アクセス制御・非同期レプリケーション・ログ先行書き込みなど強力な機能が勢揃い
- 大小英数字の識別・ソート・フォーマットなどスケーラビリティが高い。
PostgreSQLは世界でもMacOSやWindows,Linuxなど幅広いOSに対応可能。
🛠 SQL Server
SQL ServerはMicrosoftが開発したRDB。
SQL Serverには以下の特徴がある。
- GUIで操作するので直感的な操作が可能
- Transact-SQL(T-SQL)を利用でき、繰り返し処理や条件分岐が可能
(他のRDBMSでも可能みたいで、深くは調査中です。) - システム規模に合わせたエディションが豊富で、案件によってスケールを変える事が可能
無償と有償のエディションがあり、
- Developer(開発用途)
- Express(小規模システム向け)
これらは無償だが、 - Enterprise(大規模システム向け)
- Standard(中規模システム向け)
- Web(Webサービス向け)
これらは有償となるみたい。
MicrosoftはクラウドサービスのAzureも提供しているので、揃えると相性が良い。
🛠 Amazon Aurora
Amazon AuroraはAWSが提供するフルマネージド型のプラットフォーム。
Amazon Auroraには以下の特徴がある。
- MySQLとPostgreSQLのいずれかと互換性があり、MySQLの5倍,PostgreSQLの3倍処理が速い
- リードレプリカを15台まで設置できる
- 障害対策が豊富
AWSを利用するときにセットで利用すると相性が良い。
DBエンジンの中でも強力なMySQLとPostgreSQLの処理速度を凌駕しているのでかなり強い。
✅まとめ
今回は、よく開発現場で聞く主要なDBエンジン6つの特徴を軽く紹介しました。
Amazon Auroraはまだ勉強中なので、一通り使えるようなレベルになったらまたDBエンジンの記事を出そうと思います。実際、DBエンジンを調べる機会は滅多になく、制作するソフトの技術選定する時くらいしかありません。
その時に、サラッと『これが一番良い!』と言えるくらいになりたいので
これからも学習を進めていきます。
最近、人気のある『FlutterでAppBarをコンポーネント化する方法』についてはこちら
今回はここまで
Discussion
Oracleには開発者(等)用の無料リリースがあります!
SQL ServerはDevelopとExpressは無料ですが、基本的に無償ではないと思います!
また、Auroraの互換性は、あるインスタンスがMySQL/PostgreSQLの両方と互換なわけではなく、いずれと互換性のあるタイプかを選択するものです。
T-SQLについての記述がありますが、分岐や繰り返しを含むストアドプロシージャ程度は他のRDBMSでもかけます。
その他、比較観点が一定していないので、検討表みたいにそれぞれのRDBMSがある機能を備えている/備えていないということを整理するといいのかなと思いました。
ご指摘いただきありがとうございます!
早速、ご指摘いただきました箇所を修正させていただきました。
DBエンジンやその機能についていっぱい学習するべき点がありますね。
いただいたご指摘を含めまして今後も学習に努めていきたいと思います。
この度は貴重なご意見をありがとうございました!