|
必聴講座ご紹介 Cloud Days Tokyo 2012 エムオーテックス Cloud Days Tokyo 2012 ヴイエムウェア Cloud Days Osaka 2012 アマゾン データ サービス ジャパン |
|
||||||||||||||||||||||||||||||||||||||
|
| 図1●MyISAMとInnoDB |
前述のデフォルトのテーブル・タイプMyISAMは,トランザクションもサポートしていない。トランザクションが必要な場合には,現在InnoDBと呼ばれるタイプのテーブルを使用することが多い。InnoDBはトランザクション,行レベルのロック,外部キーなど多くの機能を備えている。しかし,これらの機能がオーバーヘッドとなるため,MyISAMに比べInnoDBを使用するとスピードは落ちる。
前述の2つに加え,MySQLは合計6種類のテーブル・タイプを使用できる。テーブル・タイプはデータベースごとではなく,テーブルごとに選ぶことができる。後から,テーブル・タイプを変更することも可能である。
MySQLでは,前述の2種類とを合わせ6種類のテーブル・タイプが用意されており,ユーザーが必要な機能によって,選択することができる。
筆者は,表1のように2つのグループに分けて説明している。
表1●MySQLの6種のテーブル・タイプ| テーブル・タイプ | 概略 |
|
| 基本タイプ |
MyISAM |
MySQLの基本となるタイプ テーブル単位のロック |
| BerkeleyDB | トランザクションが可能 ページ単位のロックが可能 |
|
| InnoDB |
トランザクションが可能 行単位のロックが可能 外部キーが可能 |
|
| 補助的なテーブル・タイプ |
MERGE |
同じ構造の複数のテーブル(MyISAMタイプ)を連結して 1つのテーブルとする |
| HEAP |
メモリー上に作成されるテーブル データベースの終了時に消滅する |
|
| Temporary |
接続ごとにユニークなテーブルとして作成される 他の接続からは参照できない 接続終了ととも消滅する |
|
速さを優先するならMyISAMタイプを,機能を優先するならBerkeleyDB(BDB)タイプやInnoDBタイプ使用すればいい。後から,テーブル・タイプを変更することも可能である。表2では,MyISAMタイプ,BerkeleyDBタイプ,InnoDBタイプの特徴を比較している。
表2●主要なテーブル・タイプの比較| MyISAM |
BerkeleyDB |
InnoDB |
|
| ロック(排他制御)の単位 |
テーブル |
ページ |
行 |
| トランザクション |
× |
〇 |
〇 |
| 保存形式 |
3ファイル |
2ファイル |
全テーブルを1領域に格納 1つの領域を複数ファイルで構成 |
|
| 図2●InnoDBの構成 |
InnoDBタイプのテーブルは,データ量の増加に伴い,自動的にファイルが拡張され,限界に達すると別ファイルが自動的に作成される。そのため,1テーブルの大きさを,OSの1ファイルの容量制限より大きくすることもできる。
今回は初回ということでMySQLの概要と,ロードマップを紹介した。最近の大きなトピックスとしては,2003年5月に発表されたドイツSAP AB社との提携がある。これにより,SAPが開発していたDBMSSAP DBとMySQLが統合される予定だ。原稿執筆時点で,明確なロードマップや詳細が示されていないが,今後明らかになれば,連載の中で紹介していきたい。
■MySQLの最新リリース状況
・バージョン3系列 3.23.58(mysqldumpの問題修正など)2003年9月11日
・バージョン4.0系列 4.0.15(MacOS Xをサポート,mysqldumpの問題修正など)2003年9月3日
・バージョン4.1系列(アルファ版) 4.1.0(45バイト・パスワードによるユーザー認証機能追加など)2003年4月3日
■著者紹介 佐藤栄一(さとうえいいち)
ゼンド・オープンソースシステムズ株式会社 アーキテクト MySQL担当。ゼンド・オープンソースシステムズは,オープンソースによるシステム構築を提案し,情報化投資削減の実現を目指して平成14年12月に設立。PHPのコア技術者が設立したイスラエルZend Technologies社と提携関係にあり,Zend製品の販売,サポートおよびLAMPおよびLAPPによるシステム構築を推進している。平成15年8月より,MySQL AB社のリセーラとしてライセンス,サポート,コンサルティングの提供を行っている。