ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2015-12-16

MySQL User Conference Tokyo 2015で発表しました:MySQL 5.7におけるオプティマイザの改良点

昨日、告知させていただいたMySQL User Conference Tokyo 2015で登壇したので、その時の資料を公開した。MySQL 5.7の機能は全部ひとつのスライドで紹介しようとすると、多すぎて私にはコンパクトにまとめるだけの技量は無いため、今回はオプティマイザだけの紹介にした。興味のある方はご覧頂きたい。


そういえばすっかり忘れてしまっていたのだが、MySQL 5.7が登場した!!というブログエントリを書くのを忘れていた。もしかすると読者の皆さんの中には、MySQL 5.7が正式リリースされたことをご存じない方もいらっしゃるかも知れない。遅くなって申し訳ないが、MySQL 5.7は、バージョン5.7.9をもって正式版となっている。5.7.9は約2ヶ月前にリリースされた。ついでに言うと、バグ修正を含んだ5.7.10が既に出ている。

MySQL 5.7はまさにモンスターだ!!!と私は思う。その理由は、とんでもない数の新機能や改良が含まれているからだ。その数なんと150以上!!大掛かりにリファクタリングされている箇所もあるので、言葉で表された新機能というものにはあまり意味がないかも知れない。だが、それでもあまりに圧倒的なアップグレードではないか!!!新機能のリストについては、下記のページを参照して頂きたい。

MySQL 5.7の新機能完全リスト | Yakst

翻訳は我らがOracle ACE、@yoku0825氏だ。(翻訳ありがとうございます!!)はっきり言って、目を通すだけでも大変だと思うが、MySQLを使っている方は、ぜひ時間を取って見ていただきたいと思う。

話を今回のスライドに戻そう。オプティマイザが改良されるというのは、極めて重要なことだ。より良い実行計画が選択されるということは、その下にあるレイヤーはあまり頑張らなくても良くなるということだからだ。同じ結果を出すのに、より少ない努力で済むということだ。それによって、今までと同じコンピュータを使った場合でも、同等以上の性能が得られることになる。特に既存のSQLに手を加えなくても、より最適な実行計画が選択され、アプリケーションのパフォーマンスが向上するかも知れない。(これは確率的な問題なので、絶対そうなるとは言えない。)

特にWHERE句の条件によりフィルタリングが、結合(JOIN)の順序選択に影響する点は見過ごせない。適切なインデックスを選択する精度も向上した。これでようやくまともに使えるオプティマイザになったと言っても過言ではないだろう。正直、コストの係数を調整できるというのはまだオマケだと思う。だが、将来のバージョンでは活用される可能性が高いので、そういった仕組みが予め入っているという意義は大きい。

もっとも、オプティマイザの下のレイヤーも大きく進化しているので、既存のアプリケーションが手を加えずに高速化される可能性はある。そちらはまた別のエントリで改めて紹介しようと思う。

ユーザーカンファレンスの様子は、ガレージ・キッド氏がまとめてくれているので、ぜひそちらをご覧頂きたい。

MySQL USER CONFERENCE TOKYO 2015 の参加メモ #MySQLUC15 - #garagekidztweetz

0 コメント:

コメントを投稿