TOPサーバ構築・運用> はじめに
徹底比較!! MySQLエンジン
徹底比較!! MySQLエンジン

第6回:ストレージエンジンの処理性能比較
著者:NTTデータ  藤塚 勤也   2006/10/10
1   2  3  次のページ
はじめに

   今回は、第5回までに紹介してきたストレージエンジンの中からMyISAM/InnoDB/Archive/CSV/Memoryを選び、簡単な性能試験を行いました。その内容と結果について解説します。なお、試験に使用したバージョンはMySQL 5.0.22です。

性能試験環境

   性能試験用としてPCを1台用意し、MySQLサーバと性能試験用アプリケーション並びに「mysqlユーティリティ」を動作させました。使用したPCのハードウェア仕様は以下の通りです。オフィスのデスクトップ用途に使用する程度のものです。

CPU
Intel Pentium 4 3.2GHz
メモリ
2GByte
ハードディスク
シリアルATA 3.0Gb/s(7,200回転)

表1:試験環境のハードウェア

   OSには「CentOS 4.2」を使用しました。MySQLはソースからインストールし、「my-large.cnf」を変更しないで使用しました。よって、MySQLのInnoDBエンジンが使用するデータベース・バッファのサイズは256MBになります。

   なお、性能試験用アプリケーションはJavaで実装し、JDBCを通してMySQLに接続します。使用したMySQLのJDBCドライバのバージョンは、次の通りです。

MySQL JDBCドライバ
mysql-connector-java-3.1.12-bin.jar

表1:MySQL JDBCドライバのバージョン


性能試験内容

   今回実施した性能試験は、いくつかのSQL文単体の処理速度を測定するものです。使用するテーブルは1つのみで、次の「TEST00」テーブルです。

試験用テーブルTEST00の構成
`ADDR_ID` decimal(10,0) default NULL,
`ADDR_STREET1` char(40) default NULL,
`ADDR_STREET2` char(40) default NULL,
`ADDR_CITY` char(30) default NULL,
`ADDR_STATE` char(20) default NULL,
`ADDR_ZIP` char(10) default NULL,
`ADDR_CO_ID` decimal(4,0) default NULL

   具体的なデータベース環境としては、ストレージエンジン別にデータベースを用意し、それぞれのデータベース内に「TEST00」テーブルを各ストレージエンジンにて作成しました。データには100万件分のCSVファイルを用意し、これを初期データとして使用しました。

   この「TEST00」テーブルに対してLOAD文、3種類のSELECT文、INSERT文、UPDATE文の試験を実施し、それぞれの処理時間を測定しました。

   LOAD文は「mysqlユーティリティ」から実行し、時間を測定しました。LOAD文以外は、性能測定用のアプリケーションから一定回数実行し、その時間を測定しました。

性能試験環境
図1:性能試験環境

1   2  3  次のページ


株式会社NTTデータ  藤塚 勤也
著者プロフィール
株式会社NTTデータ   藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。

INDEX
第6回:ストレージエンジンの処理性能比較
はじめに
  LOAD文試験の内容と結果
  INSERT文試験の内容と結果