MySQL5.5 - 性能改善と可用性向上
InnoDBとMySQLサーバ全体での各種性能向上
MySQL 5.5では、MySQLサーバ全体とInnoDB固有の課題の両方で多数の改善を行った結果、性能が大幅に向上しています。特にCPUコア数の増加に対するスケーラビリティ向上のため、MySQLサーバプログラム内でボトルネックとなっている排他制御を可能な限り削減しました。
アプリケーションからの多数の接続に対応するため、データやインデックスをキャッシュするInnoDBのバッファプールやコミット前のトランザクションを蓄積するロールバックセグメントを、内部的に複数に分割して処理の並列性を高めています。
図2:SysbenchでのMySQL 5.5と5.1の性能比較テスト(クリックで拡大) |
上の図はオープンソースのベンチマークテストSysbenchを使用したMySQL 5.5と5.1の性能比較テストの結果です。SQL文は参照と更新を混ぜたテストで、グラフの横軸はSQL文の同時実行数、縦軸が秒間のトランザクション数です。テスト環境は以下の通りです。
- CPU : Intel Xeon X7460 x86_64 4 CPU x 6 Cores, CPU 2.66 GHz
- RAM : 32GB
- OS : Fedora 10
なお、InnoDBを使用しているもののメジャーバージョンをMySQL 5.1から変更できない場合、MySQL 5.5の一部機能をバックポートとしたInnoDB Plug-inストレージエンジンが、2009年4月にリリースされたバージョンから利用可能となっています。
性能向上はSQL文の処理性能だけではなく、InnoDBのクラッシュリカバリ性能も向上しています。これは他のRDBMSのREDOログに該当するInnoDBログのスキャン方法やログの適用方法を変更したことによるもので、処理が10倍以上高速化されたベンチマーク結果も出ています。
MySQLのWindows環境への最適化
MySQLにとってWindowsは非常に重要なOSです。MySQLを使用したアプリケーションの開発環境として、またコミュニティ版の本番運用環境としてはWindowsが最大のシェアとなっています。MySQL 5.1まではあまりWindows環境への最適化に注力していませんでしたが、MySQL 5.5では多くの方がMySQLを利用される環境での性能や利便性の向上、Windows環境で利用されるツールとの連携強化を図っています。
特に性能面では独自実装の処理をWindowsネイティブのAPIに切り替えるなどで大幅に性能向上しているため、Windows上でMySQLをお使いの方には5.5へのバージョンアップを強くおすすめしています。
Windows用インストーラを刷新し、MySQLサーバだけではなくODBCドライバやMySQL Workbenchなど複数の製品を一括でインストールできるようになりました。インストール後にはWindowsサービスへの登録やパスワードなどの初期設定、およびサンプルの登録が可能です。インターネット接続が可能な環境では、自動的に最新のマイナーバージョンの有無を確認します。
図3:MySQL Universal Installer(クリックで拡大) |
Visual Studio上でMySQLを利用するアプリケーションやストアドプロシージャの開発も可能です。有償版のMySQL 5.5では、Windowsサーバ環境で多く利用されるWindows Active Directoryでのユーザー認証が可能となりました。
Windows Server 2008 R2に搭載されたWindows Server Failover Clusteringを利用して、iSCSIやFCALベースの共有ディスクを使用した高可用性構成をサポートしています。障害時のフェールオーバーを含むクラスタの管理は、Cluster Managerによって行われ、追加のソフトウェアやスクリプトの作成は不要です。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- オラクル、「MySQL 5.7 Development Milestone Release(DMR)」をリリース
- MySQL5.6- さらなる機能追加とNoSQL
- MySQL 5.6での機能強化点(その3)- 人気のレプリケーションが更に機能強化
- MySQL Connect 2013でも発表されたMySQLの最新リリースと、関連ツールの基礎知識
- MySQLのリアルタイムモニタリングに「innotop」
- PostgreSQLクラスタの動向
- ここが新しい!MySQL 5.1
- 高可用性とデータ・シャーディングを実現できるMySQL Fabricとは?
- MySQL 5.6での機能強化点(その1)- パフォーマンスと使い勝手を大きく向上
- MySQL Cluster:NoSQL+SQL、NoSQLも使える高可用性インメモリRDBMS