予告通り参加してきました。
その前に、東京に前日入りして美術館巡りをした後、天候が回復してMySQL server Typhoon 'Lan' has gone away、で午前中が暇になったのでまたまた美術館へ。
「カンディンスキー、ルオーと色の冒険者たち」を見てきました。
※受付でカンディンスキー「商人たちの到着」の塗り絵をもらいました。が、パナソニックのショウルームに立ち寄って絵葉書をもらうのをすっかり忘れたまま出てしまいました。
午後になり、まずはMySQL最新セミナーを聞きに日本オラクル@北青山へ。
togetter.com #mysql_jp
MySQLプロダクトマネージャのMorganさん(通訳は梶山さん)から、MySQL 8.0の新機能を活用した、サンプルシステム(AT&Tパーク座席予約システム)の解説を聞きました。
逐次通訳がスピードラーニングみたい(?)で面白かったです。
GIS、絵文字、utf8mb4デフォルト化、Unicode 9.0サポートの紹介に続いて、「utf8mb4(但しcollationはutf8mb4_0900系の新しいやつ)でMySQL 5.7比でかなり高速化した」というベンチマーク結果が示されました。
また、開発者目線の機能ということで、MySQL ShellとJSON関連機能、特にJSON_TABLE()(但し現時点ではRC版ではなくLab版での提供)を使った例が紹介されました。
CTE、Window関数との組み合わせで「$」を使った要素へのアクセスなど、「そんな使い方をするのか!」という新たな発見がありました。
その他、DBA Admin API、MySQL Router (and HA)、グループレプリケーション、SELECT ~ FOR UPDATE NOWAIT / SKIP LOCKED(Oracleには以前からあるやつですね)、Invisible Index、Performance Schemaの拡張、オプティマイザがバッファプール内/外を区別してコスト計算する改良、リソースグループ、透過的データ暗号化(TDE)でのバイナリログ暗号化サポート(今後はバイナリログのInnoDB化も進める模様)などの紹介がありました。
Morganさんの話の次に、梶山さんがMySQL 8.0の新機能について、先の話を補足する形で紹介されました(SRID、ROLE、UUIDとビット処理、オプティマイザとバッファプール、ヒストグラム統計、オプティマイザヒント、パフォーマンス・スキーマ・ヒストグラム、ロックの確認方法変更、SET PERSIST、performance_schema.variables_infoによる設定変更履歴、データディクショナリ、InnoDB Dedicated Server、などなど)。
ヒストグラムの話の中で、「今後、INDEXとヒストグラムの自動切り替えができるようにする予定」(今はINDEXがあるとヒストグラムは使わない)という話とともに、「JOINで使える」という話が出てきましたが、私が試した限りではダメでした(やり方が悪い?)。
3つ目のテーマは、MySQL InnoDB Cluster(杉山さん)でした。
グループレプリケーションとMySQL Routerを組み合わせてMySQLをクラスタ化(設定・管理はMySQL Shellで)ということで、参加者の皆さんはこちらのほうに興味深々だったようです(MyNA会もそうでしたが、全体の人数が少ない分「MySQLガチ勢」の方が多めで私はちょっとビビッてました…)。
私の場合はプロダクトがAmazon Aurora環境に移行してしまったので、「動向を知る」程度のスタンスで聞いていましたが。
ここで時間がほとんどなくなり、引き続き杉山さんがMySQL Enterprise Editionの説明を駆け足で進めて、ほぼ時間通りに終了。
ここからは渋谷のGMO@セルリアンタワーに移動し、MyNA会へ。
togetter.com #mysql_jp
1つ目のテーマは先ほどと同じ(Morganさん)でしたが、サンプルシステムの説明が終わった後、Sli.doを使った質疑応答タイムが盛り上がりました。
予定時間を余裕でオーバーし(?)、休憩をはさんで2つ目のyoku0825さんの話に続きましたが、MySQL 8.0は5.7ほどの(設定上の)罠はなさそう…という中で、「予約語が増えたからテーブル名とか被って死なないように気を付けよう(クォートしようね)」という話になったときに、Morganさんが「とあるOracle ACEの方からのリクエストで、標準SQLにあるキーワードをMySQL 8.0で軒並みキーワード/予約語に入れたよ」というフォローが入りました。
…確かに、たくさん増えてます。死なないように気を付けましょう。
また、この時点では「キーワード」と「予約語」の違いに気づいていなかった(参加者の皆さんはどうだったかわかりませんが、少なくとも私は気づいてなかった)のですが、リファレンスマニュアルを読んで違いがあることに気づいたので、Qiitaに記事をあげてみました。
3つ目は「日本のDmitriおじさん」と名指しされた(?)i_rethiさんによる「グループリソースの即興ベンチマーク」でした…が、最新情報セミナーを聞いている最中に即興で行ったベンチマークだったせいで、パフォーマンス向上効果がほとんど確認できなかった様子。
私はここでタイムアップ。4つ目の「HaskellでX Protocol」(naotoogawaさん)を聞けずに退出…残念。
ぎりぎりまで聞いても良かったのですが、荷物が多く移動に時間がかかりそう(山手線の運行状況も心配)だったので、20分ぐらい余裕をもって出ました。
案の定、品川駅でドアを動かして緊急停車させた輩がいたらしく、途中で7~8分ほど足止めを食らいました。
もっとも、新幹線も東京駅での乗り継ぎ待ちで7分ほど遅れてきたので、結果的には余裕で間に合いましたが(終点名古屋の時点で1分遅れまで回復。そのかわり、回復運転でいつもよりGが掛かって乗り心地が…)。
念のため、家から名古屋駅までは車で行ったので、名古屋駅からは駆け込み乗車せずに済みました。
ずっとキャリーケースを引きながら(階段で持ち上げながら)歩き回ったので腕がパンパンになって疲れましたが、密度の濃い2日間でした。
MyNA会でいただいたイルカのぬいぐるみと折り畳みバッグ(買い物袋?)です。
【おまけ】