http://dev.mysql.com/downloads/mysql/6.0.html
MySQL 6.0.8からの変更履歴はこちら。
http://dev.mysql.com/doc/refman/6.0/en/news-6-0-9.html
MySQL 6.0.9では、先日紹介したBKA JOIN最適化が有効になっているので、大きなJOINの性能などを試してみてほしい。ちなみに、MySQL 6.0.xにはMySQL Clusterが含まれていないが、BKA JOINなどの効果は大きいので、現在MySQL 6.0と組み合わせたMySQL Clusterを準備中である。予定は今四半期(2009年1月〜3月)中なので乞うご期待!!
さて、今日はMySQL 6.0の新機能をおさらいしておきたい。ちなみに、新機能のリストは以下のページに載っているのだが、英語で書かれている。なのでその中から要点だけかいつまんで説明しよう。
http://dev.mysql.com/doc/refman/6.0/en/mysql-nutshell.html
Falconストレージエンジン搭載
Falconは、最近急激に豊富になってきているコンピュータリソース(メモリ・CPUコア)を上手に活用して、リッチな環境下において機能面・性能面でInnoDBを上回ろう!という目標の下に開発されているストレージエンジンである。今後、CPUコアやメインメモリがもっともっと増えていくのは明らかなので、そのような開発目標を持っておくことは重要である。Falconの主な機能は次の通りである。
- ACID完全準拠
- MVCCによる同時・排他アクセス制御
- 拡張されたBツリーインデックス
- インデックス圧縮とデータ圧縮
- データとインデックスの柔軟なキャッシュ
- マルチスレッド化されたI/O
- 空間インデックスのサポート
- フルテキストインデックスのサポート
Falconについてはそのうちこのブログでも紹介することになるだろう。
4バイトUTF-8のサポート
以前の投稿でも書いたが、現在のMySQL(〜5.1)では3バイトまでのUTF-8しかサポートしていない。これでは一部の日本語を表現することが出来ないので、問題が生じることもあるだろう。MySQL 6.0では4バイトのUTF-8をサポートしているので、現在困っている人はぜひ試してみて欲しい。また、現在UTF-8を使ってアプリケーションを構築している人は、将来に備えて4バイトUTF-8でちゃんと動作するかどうかを確認しておくといいだろう。何か問題が生じた場合には報告して欲しい。
Optimizerの強化
ストレージエンジンへのアクセスにおいて、BKA、(I)CP、MRRといった最適化が加わった。一部のストレージエンジンではかなりの性能向上が見込めるはずである。詳しくは先日の投稿を見て欲しい。
また、6.0ではサブクエリの最適化手法が加わった。詳しくはMySQL forgeのページを見て欲しい。現在有効なのはsemi-JOIN最適化手法と、Materialization最適化手法である。これらの最適化手法がフィットすれば劇的な性能向上が見込めるので、いくつかサブクエリを書いて試してみて欲しい。
ちなみに、semi-JOINとはINNER JOINに似ているが、重複した行が排除されるという点が異なる。サブクエリをsemi-JOINに書き換えるというのがこの最適化手法のミソである。
オンラインバックアップ機能強化
現在、オンラインバックアップを取ろうと思うと、mysqldumpコマンドを使ったり、LVMスナップショットを使ったり、InnoDB Hot Backupを使ったり、MyISAMならmysqlhotcopyを使ったりと様々だろう。6.0で追加されるBACKUP DATABASEとRESTOREコマンドを使えば、より高速に・簡単にバックアップとリストアが行えるようになる。(ストレージエンジンレベルでバックアップ・リストアが実行されるようになる。)
INFORMATION_SCHEMAの強化
ストアドプロシージャなどのパラメータを参照するための、PARAMETERSテーブルが追加された。その他諸々の追加がある。
その他
XML機能強化(LOAD XMLコマンドの追加)、コメント追加機能の強化、RESET SLAVEコマンドの仕様変更などがある。上記のページには載ってないがIPv6にも対応する予定である。
0 件のコメント:
コメントを投稿