mysql 仕組み(1)
mysqlとは
オープンソースのリレーショナルデータベース管理システム(RDBMS)である。
リレーショナル・データベース管理システム(RDBMS)とは
リレーショナル・データベースを作ることや使うためのソフトウェアのことである。
RDBMSの特徴
- トランザクションを使うことでデータの一貫性を保つ
- データの参照や更新を簡単にできるための言語SQLが存在
- データの整合性を維持
- セキュリティやチューニングなどの機能がある
RDBMS以外のデータベース(NoSQL)
- 高速な読み書きを行うことができる。
- データ型の定義が必要ない。
- データ同士の関連は表現できない
ストレージエンジン
ストレージエンジンとは
通常、RDMBSはいくつかの構成要素によって成り立っており、SQL文を受け取って結果を返すデータベースエンジン部、アプリケーションとデータベースエンジンを結びつけるクライアントモジュールや様々なツール群などから成り立っている。
その中でもサーバ側にて動作するデータベースエンジンはRDBMSの心臓部であり、非常に多くの仕事を担っている。
データベースエンジンの動作
- データベースエンジンがクライアントからSQL文を受け取ると、そのSQL文の解釈を行う
- どのようにデータを処理するかの決定。
インデックスが存在するか。使ったほうが良いのかなど - 実データへのアクセス処理が開始。個々の部分がストレージエンジンに当たる。
ストレージエンジンの種類
- MyISAM:テーブル単位のファイルによるデータ構造を持ち、トランザクション機能をサポートしていない
- InnoDB:テーブルスペース内に複数のテーブルやインデックスを格納するデータ構造を持ち、トランザクション機能をサポート
MySQLの特徴としてストレージエンジンをテーブルごとに選択できる点が挙げられる。今回は、普段よく使っているInnoDBについて調べてみることにした。
InnoDB
MySQL 5.5.5移行、新しいテーブル用のデフォルトのストレージエンジンはInnoDBです。
利点
- ハードウェアまたはソフトウェアの問題が原因でサーバーがクラッシュした場合でも、その時点でデータベースに何が発生していたのかには関係なく、データベースの再起動後に特別なことは何もする必要がない。
- テーブル及びインデックスのデータにアクセスすると、そのデータは、InnoDBのバッファープールにキャッシュされる。頻繁に使用されるでt−あは、直接メモリーから処理される。このキャッシュは非常に数多くのタイプの情報に適用され、これにより処理速度が大幅に上がる。
- テーブルごとに適切な主キーカラムを持つデータベースを設計すると、これらのカラムが関与する操作が自動的に最適化される。where,order by ,group byを使う時に主キーカラムへの参照が非常に高速である。
ディスカッション
コメント一覧
まだ、コメントがありません