MySQL ユーザコンファレンス 2008に行ってきた

にぎわっていました。
MySQL 5.1、MySQL Cluster、パフォーマンスチューニング、他のDBからMySQLへの移行事例を扱ったセッションが人気だったように思います。これから使うというよりすでに使っている人たちが多かったのかもしれないですね。

いくつか面白かった点を。

MySQLInnoDB)がスケールアップしないというのは誤解という話

悪名高い?DBT-1でインデックスがちゃんと使われていないからスケールアップしないという結果になるけど、調整をすると、性能は3倍程度向上しスケールアップするとのこと。どのデータと比較していたかはわからないですけど、この辺?

http://ossipedia.ipa.go.jp/capacity/EV0612260303/

IBM iでPHP

昔のOS/400は、今では IBM i というらしいです。知らなかったよ。i5とかいうのは知っていたけど、さらに名前が変わったみたい。
で、IBM i上でPHPとかMySQLが動き、RPGCOBOLとも連携できるということをアピールしていました。今はまだだけど、将来的にはMySQLと内部のDB2が連携するようになるそうです。PHPは第2のRPGとも言っていました。IBMではそういう位置づけなんですね。ちょっと驚きました。そういえば、Project Zeroとかやってますもんね。RPGからPHPへの移行が進んでいたりするんでしょうか?フロントエンドをPHP、バックエンドをRPGという感じで分けちゃうならわかるけど、移行となると大変そう。

MySQL Cluster

仕組みはなんとなくしかわかっていませんが、インメモリデータベース相当なんですね(ディスクテーブルもサポートされたらしいのですが、メモリに持ったほうが断然速いらしい。ディスクテーブルの利用は慎重になったほうがいいみたい)。TimesTenとかSolidDBとかと同じ位置づけなのかなぁと思いました。MySQL Clusterのセッションはたくさんありました。私は2つのセッションを聴講したんですが、どちらも人がたくさんでした。
MySQL Clusterに向いているアプリの特徴として、単純なSQLを大量に発行するアプリというのがありました。結合や副問い合わせなどの多用には適していないようです(この特徴はTimesTenとかSolidDBにも当てはまりますね)。JPA 的なアプローチ(遅延ロードで主キーを条件に細かく取得など)が今後はもう少し盛り上がるか??
MySQL Clusterは、SQLでアクセスしてもいいけれど、JavaC++から専用のAPIをたたくとより高速らしいです。

Covering Index

クエリの数は増えてもいいから、検索範囲を狭くしてI/Oを減らして検索結果を小さくすれば速くなるとのこと。その際にCovering Index(Indexのリーフブロックだけ読んでデータファイルにはアクセスしない)が効果的という話。しかし、Covering Indexのいい日本語名がないから、人と話すときに困りますね。

MySQL Enterprise Platinumコンサルティングサポート

これは興味深かったです。技術者の気概が伝わってきました。
1サブスクリプションあたり年間8時間のサービスなのですが、内容がやたらと濃いのです。
リモートログインしてサーバーのクラッシュからの復旧や原因不明のパフォーマンス低下の原因調査をしてくれるそうです。ほかにも、コード(ストアド、トリガ、UDF用のC/C++のコード)のレビューやスキーマのレビュー、バックアップ・リストアに関するアドバイスなど何でもあり?と思えるくらい色々してくれるみたい。金額は知りませんがすごいサービスだなぁと思いました。スピーカーの方も自ら「挑戦的なサービス」とおっしゃっていました。

Battery Backed Write Cache(BBWC)がとても速い

BBWC(と略すらしい)はストレージの非同期書き込みの機能です。MySQLInnoDBの更新でBBWCあるなしで10倍程度性能が変わってくるとか。