リレーショナルデータベース・カタログ
山田祥寛(http://www.wings.msn.to/)
2004/6/15
注目度急上昇中の高速RDBMS MySQL 4.0.20 |
|
■製品概要
MySQLというと、「高速だけがウリで、機能に乏しい」というイメージを持っている人もいるかもしれない。しかし、それはもはや過去の話である。2004年6月時点での最新安定バージョンである4.0.xにおいて、MySQLは一般的なRDBMS製品と比べてもほとんど遜色ない機能を提供している。以下に、MySQL 4.0.xで導入された新機能を挙げておく。
- InnoDBの標準実装(注)
- クエリーキャッシュの実装
- UNION(和結合)への対応
- 複数テーブルに対するUPDATE/DELETE命令の適用
- レプリケーション機能の改善
注:3.23系は3.23.34a以降、Maxでのみ対応。 |
特に、トランザクションに対応したInnoDBが標準実装になった点は注目すべきだろう。MySQLのデフォルトのテーブル型であったMyISAMは、SELECT時における抜群の高速性を特徴とするものの、
- トランザクションに非対応
- 更新時にはテーブル全体がロックされるため更新処理が頻繁に発生するシステムには不向き
などの問題があった。一方のInnoDBは、MyISAMに比べれば低速ではあるものの、トランザクション、行レベルのロックに対応しているため、更新時のデータの整合性が意識されるようなケースには適している。つまり、MySQLを運用する場合、アプリケーションの特質・用途に応じて、最適な機能(テーブル型)を選択することで、高いパフォーマンスを引き出せるのだ。
なお、MySQL 4.0.xはストアドプロシージャやサブクエリー、トリガ、ビューなどには対応していないが、今後登場予定のMySQL 4.1、5.0、5.1で順次実装される予定だ。詳細については「MySQL and the Future (the TODO)」(http://dev.mysql.com/doc/mysql/en/TODO.html)を参照してほしい。
■注目ポイント
●充実の管理ツール
コマンドラインツール主体の操作は、上級ユーザーには軽快な操作性を提供するが、初学者にとっては高いハードルとなる。上級ユーザーであっても、テーブルの内容をちょっと確認するためだけに、いちいちSQL命令を発行しなければならないのはやはり面倒なものだろう。
MySQLの開発元であるMySQL ABは、GUIツールである「MySQL Control Center」を提供している。β版(2004年6月時点)ではあるが、テーブル作成からデータの編集、ユーザー管理までをControl Centerのみで行えるので便利だ。多少の不具合や問題点は今後の改善に期待するとして、現時点でも十分に実用に耐えると思ってよいだろう。
画面 MySQL Control Center(画像をクリックすると拡大表示します) |
また、利用に当たってPHPのインストールが必要になるが、WebベースでMySQLの一連の操作が可能なphpMyAdmin(http://www.phpmyadmin.net/)も管理ツールとしてお勧めだ。頻繁にバージョンアップを繰り返すことでユーザーインターフェイスや操作性の改善も図られており、安心して使える管理ツールの1つである。
画面 phpMyAdminの画面(画像をクリックすると拡大表示します) |
●複数のテーブル型から選択可能
MySQLは、用途・目的に応じてテーブル型を選択できる。MySQL 4.0.xで対応しているテーブル型は以下のとおり。
カテゴリ
|
名称
|
概要
|
通常型 | MyISAM | トランザクション非対応。テーブル単位のロック(デフォルトの型) |
Berkley DB | トランザクション対応。ページ単位のロック | |
InnoDB | トランザクション対応。行単位のロック | |
特殊型 | HEAP | メモリ上の一時テーブル。データベース終了時に自動破棄 |
Temporary | 接続単位の一時テーブル。接続切断のタイミングで自動破棄 | |
MERGE | 同一構造のMyISAMテーブルを連結 | |
表 MySQLのテーブル型 |
MySQLはそのほかのデータベース製品のように、最初から大規模向けシステムを想定した高度な機能を開発者に強制しない。多くの場合で不要な機能をデフォルト状態では無効にすることで、より適切なリソースの配分を可能にしている。これがMySQLの高速性を保証しているのだ。これは一方で、MySQLである程度大規模(あるいは複雑な)データベースを扱う必要がある場合は、テーブル型についても慎重に検討する必要があることを意味する。
以上、MySQLが単に高速なだけのRDBMSでないことがお分かりいただけたと思う。オープンソースといえども、実際の開発・サポートはMySQL AB社によって行われており、品質の高さも商用データベースと同レベルあるいは同等以上だと思ってよい(参考:http://www.reasoning.com/newsevents/pr/12_15_03.html)。事実、海外ではMySQLが多くの大型サーバで採用されている。国内でも楽天グループが採用しているのは有名だ。「高速なだけ」という先入観を払しょくして、いま一度見直してみる価値が十分にある製品であろう。
|
7/9
|
|
||||||||||||||||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム 製品情報・レビュー関連記事 |
特集:2007年、Linuxディストリビューションの歩みを振り返る 商用、非商用ともにメジャーバージョンアップが相次いだ2007年。主なディストリビューションを取り上げ、アップデート内容を紹介します |
|
プロダクトレビュー[Ubuntu 7.10 日本語ローカライズド Desktop CD] 海外のみならず日本国内でも人気急上昇中のUbuntu。優れたインターフェイスを備えるとともに、豊富な機能がコンパクトにパッケージされている |
|
特集:業務で使うデスクトップLinux カタログ 定型業務さえこなせればよいという部門も多い企業環境は、コンシューマ市場以上にLinuxへの移行が容易ともいえる。そこで、6つのLinuxディストリビューションを紹介する |
|
特集:Linuxで動くリレーショナルデータベース・カタログ データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい |
|
特集:Windowsで動くXサーバ・カタログ やや特殊な用途に用いられてきたXサーバだが、活用しだいでは普通の管理用途にも有用だ。そこで、Windowsで動作する6本のXサーバを紹介する。選択の参考にしてほしい |
|
特集:Linuxで動くJavaアプリケーションサーバ・カタログ アプリケーションサーバは、いま最も開発競争が激しいジャンルの1つだ。その中から、Linuxに対応する5つの商用製品を紹介する。製品導入の際の参考にしてほしい |
|
特集:Linuxで動くWebグループウェア・カタログ Linuxを業務用サーバに採用するケースも増えている。そこで、Linuxをサーバとして利用するWebベースのグループウェアを紹介しよう |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|