Oracle ACEってどんな人?世界基準のトップエンジニアにインタビュー
《第11回:平塚 貞夫氏》 MySQL のことを正しく伝えたい

2012年、MySQLの分野で新たなOracle ACE が誕生しました。今回新たに認定された平塚貞夫氏にOracle ACE 認定の感想を伺いました。MySQL の技術情報を正しく伝えるために平塚氏がとった行動とは(編集部)

111115-01_01.jpegOracle ACE
平塚 貞夫氏

NTTコムウェア株式会社で、データベースエンジニアとしてOracle DatabaseとMySQLを使い倒す日々。
クラシック音楽が好きで、自らもピアノを演奏する。
ブログ:SH2の日記(http://d.hatena.ne.jp/sh2/)


■MySQL との出会い

現在、データベースの技術支援やトラブル対応を行う部署に所属しています。この部署は、元々Oracle Databaseを専門に扱っていたのですが、2005年にオープンソースソフトウェア(OSS)のデータベースも扱うことが決まり、私はMySQLを担当することになりました。かれこれ7年になります。当初MySQLの仕事は全体の2割程度でしたが、現在ではOracle DatabaseとMySQLが半々くらいになっています。この1~2年はMySQL の適用案件が増えてきていますね。

Oracle Databaseに関わってきた者として、MySQL に出会った当初はいろいろなところで面食らいました。Oracle Databaseでは当たり前だと思っていたことが、MySQLでは当たり前ではなかったのです。たとえば、MySQLではトランザクションをコミットしてもディスクに同期書き込みをしないという設定をすることができます。Oracleエンジニアとしては「コミットしたデータは何が何でも守る」ということが常識でしたから、当時はMySQLって本当に大丈夫なの?どうしてこんな機能がついているの?とビクビクしながら使っていたものです。もちろん適切に設定すれば問題ありませんし、その後のバージョンアップで同期書き込み時の性能も大きく改善されていますので、今となっては笑い話ですけれど。

だからと言って、MySQLがOracle Database に追いついたわけではありません。MySQLはまだ発展途上の製品なのです。でも、そこが面白いと感じています。Oracle がSun Microsystems を買収してからMySQLの開発は一層加速したという印象がありますし、今後さらに改良が進み、もっと安心して使える製品になっていくと期待しています。

■Oracle ACEになって

MySQL のエキスパートはもっとすごい方が国内にたくさんいらっしゃいますので、自分がACEと呼ばれるのはちょっと照れくさいですね。実は、今通っているピアノ教室で知人に「Oracle ACEになりましたよ」と話をしてみたのですが、軽くスルーされてしまいました(笑)。

■ブログを始めたきっかけ

MySQL を使っていて何らかのトラブルに遭遇した際、コミュニティに質問を投げかけて解決策を模索したことのある方もいらっしゃると思います。国内にはMySQL のエキスパートが数多くいらっしゃいますし、中にはMySQLの不具合や足りない機能を見つけて、さっとパッチを書いてしまうすごい方もいらっしゃいます。こうした方々に名前を覚えていただいて交流を深めたい、虫のいい話ですが困ったときには助けてほしいと思いまして、そのためにMySQL エンジニアとしての「名刺」を持ちたいと考えたわけです。その名刺として始めたのがブログです。自分で調べたことをブログで公開していくことで、自分のことをみなさんに知ってもらえますし、MySQLに対する課題感なども共有できると考えました。

■正しい情報を伝えることの大切さ

ブログを始めたのにはもう1つ理由があります。

以前MySQLを使用したシステムで性能改善に取り組んでいたのですが、ディスクI/O性能がボトルネックになっていてなかなか有効な対策が打てないことがありました。ところがある日突然直ったと言われまして、ヒアリングしたところ、システム管理者がウェブで検索してたまたま見つけた記事を参考にしてMySQLの設定を書き換えたと言うのです。その設定が、最初にご紹介した「コミット時の同期書き込み」です。このパラメータをOFFにすれば確かに性能は向上しますが、サーバ障害時に最新のデータを失うという副作用があり、そのリスクを把握した上で導入判断をする必要があります。しかし、記事にはこの副作用については何も書かれていませんでした。「このパラメータをOFFにすれば簡単に性能が良くなるのに、こんなことも知らなかったんですか」と言われて、もちろん知っていて危険な設定を提案するわけにもいかずあえて触れなかったのですが、すっかり信用を失ってしまって非常に悔しい思いをしました。

そのときに、MySQLで何か困ったことがあってウェブで検索した場合に適切な情報がヒットするようになっていれば、当事者も助かりますし、何より、トラブルの発生自体が減って自分の仕事も楽になると考えたのです。今でこそすばらしい書籍がいくつも出版されていますが、MySQLについてはOracle Databaseのようなノウハウの蓄積はまだまだ足りていないと考えています。最新情報も基本的に英語ですので、言語の壁もあります。また進歩の著しい製品ですから、その記事が書かれた時点では正しい情報だったとしても、数年後に読み返すと間違っているということもあります。断片的な内容の記事では、その情報が今も正しいのかどうかを判断するのはなかなか難しいのです。そこで自分で調べたことはブログでできるだけ詳しく紹介するようにし、ウェブで検索した際に極力上位に出てくるよう工夫もしました。

またOracleエンジニアとしての経験をふまえ、Oracle DatabaseでできていることをMySQLでどのように代替できるか、という観点での記事を増やしていきました。これは今後MySQLがますます普及していくにあたって、国内で人数の多いOracle Database経験者がMySQLも担当していくことが増えるだろうと考えてのことです。mysqldumpslowを用いた性能分析手法やロック競合の解析手法などは、この考えにもとづいて執筆したものです。

■MySQL の進歩にあわせてスキルを向上させる

新入社員などOracle Database 11g R2からRDBMSを学ぶ方は正直大変だと思います。Oracle Databaseは長年にわたってさまざまな機能が蓄積されてきた結果、現在のアーキテクチャになっています。機能の数も非常に多いですし、どうして現在のアーキテクチャになったのかは過去の経緯を知らないとなかなか理解しづらいところもあると感じています。そこで、新人の方はMySQLをあわせて勉強されることをおすすめします。MySQLはまだ発展途上の製品ですので、Oracle Databaseに比べて機能が足りないところは多々あります。しかし、機能が少ないため全体的なアーキテクチャを把握することは容易です。全体像を把握したうえで、今のMySQLに足りない機能は何か、次のバージョンでどの部分が補われるのか、それはどのようなニーズがあってのことなのかを追いかけていくと、MySQLの進歩にあわせてご自身のスキルを向上させていくことができるのではないかと考えています。

■今後の抱負

2013年にMySQL 5.6がリリースされます。レプリケーションのフェイルオーバー、SQLオプティマイザの強化、InnoDBテーブルスペースのエクスポート/インポートなど多くの新機能が導入される予定です。個人的な印象として、MySQLはOracle Databaseに比べるとまだ15年は遅れている製品です。しかし、着実に良くなっていることも確かです。今後は最新バージョンの導入における注意点などをあらかじめまとめておくことで、みなさんの担当されるサービスの品質向上に少しでも貢献することができればと思っています。

111115-01_03.jpeg

前の記事 <<  最初の記事へ  >> 次の記事