データベースの違い(Oracle・MySQL・SQL Server)

データベース製品の中でも世界で利用者の多い

Oracle Database・MySQL・MS SQL Serverについて、

それぞれの特徴を確認し、比較していきます。

 

下記、DB-ENGINESという世界のランキングサイトを見てみると、

上位3製品が圧倒的に使用されていることが分かります。

DB-Engines Ranking - popularity ranking of database management systems

 

1位 Oracle Database

2位 MySQL

3位 MS SQL Server

 

今回は、世界で最も使われているOracle Databaseについて簡単に特徴を書きます。

 

 

企業でデータベースを導入する際に、必ず名前が上がるのがOracle Databaseです。

元々企業向けデータベースとして提供されている製品です。

非常に高性能なリレーショナルデータベース(RDBMS)です。

 

特徴

●行レベルロック

Oracle Databaseの推しの機能です!

「ロック」とは、データを変更する際に、別のユーザーからの更新のバッティングを防ぐための排他制御機能(鍵をかけるようなもの)です。

ロック単位が大きくなると、他のデータにも不要なロックがかかってしまい、ロック解除待ちが多発するため、処理効率が大幅に低下してしまいます。

Oracle Databaseは、処理対象の行のみをロックするため、表やページロックと比べて、待機時間を減らすことが出来ます。

他社RDBMSの行レベルロックは、不完全なロックのため、ロック出来る行数に制限があり、ある一定の値を超えると、ロック・エスカレーションが発生し、行レベルロックから→→ページレベルロック→→表レベルロックへ移行してしまい、アプリケーションの同時実行性が低下してしまいます。

Oracle Databaseは、常に行レベルロックが可能です。

ロックの行数に制限がないため、ロック・エスカレーションが発生しません。

また、きめ細かい行レベルロックにより、ロックの競合が大幅に軽減します。

※一般的なロックレベル:表 > ページ > 行

 

読み取り一貫性

同じデータに同時にアクセスがあった場合、Oracle Databaseでは常に一貫性のあるデータ(確定データ)が返されます。

データの変更中であっても、待機時間無しでデータを読み込むことが可能です。

また、データ読み込み中であっても、データの更新が可能です。

Oracle Databaseは、複数のユーザーからのアクセスに対しても「同時実行性」と「データの一貫性」を確保します。

 

まとめ

企業向けのデータベースの王道と言われているオラクルデータベースは、高性能な行レベルロックと同時実行性・読み取り一貫性が確保されているため、国内企業の約50%で使用されています。

 

次回は、元サンマイクロシステムズのMySQLについて確認します( ´ⅴ`)ノ