CodeZine(コードジン)

特集ページ一覧

【Sun Tech Days 2008セッションレポート】「MySQL: Database for Web 2.0」

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/12/10 12:55

 12月2日から開催された「Sun Tech Days 2008 in Tokyo」では、サン・マイクロシステムズ株式会社MySQLビジネス統括本部の梶山隆輔氏が「MySQL: Database for Web 2.0」と題したセッションで、MySQLのデータベース設計やSQLのチューニングについて解説した。

目次

 12月2日から開催された「Sun Tech Days 2008 in Tokyo」では、サン・マイクロシステムズ株式会社MySQLビジネス統括本部の梶山隆輔氏が「MySQL: Database for Web 2.0」と題したセッションで、MySQLのデータベース設計やSQLのチューニングについて解説した。

サン・マイクロシステムズ株式会社MySQLビジネス統括本部 梶山隆輔氏
 サン・マイクロシステムズ株式会社MySQLビジネス統括本部梶山隆輔氏

利用シーンが広がるMySQL

 梶山氏はまず、MySQLはいまやLAMP環境にとどまらない、広範囲に利用される汎用的なRDBMSであることを強調した。どうしてもMySQLには「ウェブ」「小規模」というイメージがあるが、エンタープライズ分野や、ミッションクリティカルな分野でも使われるようになってきているという。

 最近は「Enterprise 2.0」というキーワードで、社内の大規模なシステムをMySQLで置き換えるケースも出てきている。国内の事例では新生銀行が知られている。また、あまり知られてない事例として、アドビシステムズやサイボウズ、キオスク端末など、商用ソフトウェアや専用端末にMySQLが組み込まれているケースもある。

ストレージエンジンを使い分ける

 梶山氏は、MySQLのシステムアーキテクチャーで技術的に最も重要でオリジナルな特徴として、プラガブルなストレージエンジン(Pluggable Strorage Engine)を挙げた。MySQLでは、データベースまたはテーブルごとにストレージエンジンを切り替えることができる(表参照)。正しいストレージエンジンを選択すれば、多くのアプリケーションで性能の向上が可能だという。

MySQL 5.0のネイティブストレージエンジン
ストレージエンジン 特徴
MyISAM MySQLの標準ストレージエンジン
InnoDB トランザクション、外部キーをサポート
Memory テーブルをメインメモリ上に配置して高速に参照できる
Archive SELECTとINSERTのみ可能、ロギング・監査向け
Cluster 非共有型クラスタ
CVS フラットなファイルデータをSQLで参照
Merge パーティショニング的機能(5.0以前)
Federated 分散配置したデータに透過的にアクセス
Custom エンジンを開発するためのベースとなるエンジン
Blackhole /dev/nulll

 このうち伝統的な2つのストレージエンジンについては、次のようなパフォーマンス上のポイントを特に注意するよう語った。

MyISAM
  • パフォーマンスではkey_buffer_sizeが重要で、MySQL+MyISAMのみを利用していれば、メインメモリの25~33%を割り当てる
  • show status like 'key%'の結果からキャッシュ率を見ることが重要で、逆にkey_blocks_unreadの値が大きいときはキャッシュサイズが大きすぎる可能性もある
InnoDB
  • パフォーマンスではinnodb_buffer_pool_sizeが重要で、可能な限り大きく取り、MySQL+InnoDBのみを利用していれば、メインメモリの80%程度を割り当てる

  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

バックナンバー

連載:イベントレポート

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5