|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| データベースとはどんなソフトウェアか | ||||||||||||
|
今までのことをまとめると、データベースとは次のようなソフトウェアであることがわかります。
データベース管理システム(DBMS:DataBase Management System)でまず勉強するSQL言語は上記のうち主に4の部分です。Webサーバに限らず、ITシステムの中ではデータベースはSQL以外にも多くの共通機能を提供しているのです。 |
||||||||||||
| 磁気ディスクの特性がデータベースの性能に影響する | ||||||||||||
|
データベースはメモリに入りきらない容量のデータを複数のアプリケーションが正しく読み書きできるようにしています。そのため一部の例外を除いてデータは磁気ディスクに格納します(メモリに入りきる程度のデータを対象とするメモリデータベースというのもあります)。 データベースはデータをまず共通のメモリに蓄積し、これを必要に応じてディスクに書き出し、あるいはそれを再び共通のメモリに読み込むことでデータの読み書きを行います。 しかし磁気ディスクへデータを読み書きするために必要な時間は、メモリと比べると極端に遅いのです。メモリにも一次キャッシュ、二次キャッシュ、主メモリといろいろの種類があるので一概にいえませんが、メモリの方が1万倍から100万倍速いのです。 しかも磁気ディスクでは、回転するプラッタの上でヘッドを物理的に移動させてデータの読み書きをするので、データがばらばらなところにあると、ヘッドの移動にもかなりの時間がかかります(シーク時間といい、ディスクの性能の1つです)。 データがばらばらなところにあると、読み書きはプラッタの回転待ちとヘッドのシークの時間がかかることになります(図5)。 ![]() 図5:ランダムアクセスの例 ![]() 図6:シーケンシャルアクセスの例
参考文献1:
鈴木 幸市、藤塚 勤也、「RDBMS解剖学」、2005/2、翔泳社、ISBN:4798108642
参考文献2: 宇野 俊夫、「ディスクアレイテクノロジRAID—ハードディスクの構造からディスクアレイによる高信頼性まで」、2000/7、エーアイ出版、ISBN:4871937704 このように磁気ディスクの性能はメモリよりも極端に遅いだけでなく、読み書きのやり方でも変わりますので、データベースではディスクへの読み書きを効率的に行うように工夫しています。 例えば書かれたデータをばらばらに配置されたディスクに書き込むのはランダムアクセスになって遅いので、その代わりにデータの変更分だけをログとしてシーケンシャルアクセスで書き出し、ランダムアクセスをできるだけ減らすようにしています(図7)。 ![]() 図7:データベースでのディスクへの書き込み もちろんディスクへの読み書きだけでなく、複数のアプリケーション(プロセスやスレッド)間における処理の交通整理も重要で、これらが絡み合って待ち合わせが多くならないような工夫も必要です。 重要なことはディスクの性能がデータベースでは重要だということです。1台のディスクの性能には機械的な限界がありますので、RAID構成にして複数のディスクにデータをうまく分散させ、見かけ上の性能を上げる(ストライピング)工夫も有効です。CPUの性能を上げるよりもディスクの性能を上げる、またメモリの速度を上げることもスケールアップするためには有効な手段です。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||




