タイムテーブル
時間 | 内容 | 登壇者 |
---|---|---|
18:00-18:25 | 受付 | - |
18:25-18:30 | はじめに | MySQL GBU |
18:30-19:15 | MySQL 8.0 の便利機能とSQL標準 | MySQL テクニカルアナリスト 木村明治 氏 |
19:30-19:40 | MySQL Binlog のパケットと自作クライアント | 高野周哉 氏 |
19:40-20:30 | ネットワーキング | - |
20:45 | 撤収 | - |
MySQL 8.0 の便利機能とSQL標準
MySQL サポート担当の木村さんのお話!
あまり取り上げられない、MySQL 8 の新機能の紹介。
- EXPLAINのTREE表示
- 8.0.16でサポートされたが、Experimental扱いなので注意
- 将来フォーマットが変わるかもしれない
- EXPLAIN FORMAT=TREE を指定すると某DBみたいな実行計画が出力される
- パスワード再利用ポリシー
- X世代前のパスワードはNGとすることができるように
- 新しいCollation、utf8mb4_0900_bin
- 8.0.17からサポート
- 従来は 'a' = 'a ' (a+スペース) だったが、このCollationは 'a' != 'a ' になる
- @tmtms さんのスライドが詳しい
MySQL と SQL標準の関わり
- MySQLの機能がベースとなってSQL標準に取り込まれたり業界標準になったもの
- GROUP_CONCAT
- LIMIT句
- SQL標準では FETCH FIRST n ROWS という形式でサポート
- REPLACE, INSERT ... ON DUPLICATE ...
- INSERT ... VALUES (), (), () バルクインサート
MySQL Binlog のパケットと自作クライアント
高野さん
バイナリログから更新内容をリアルタイムに読み出すために、独自にRubyでクライアントを書いたお話でした!すごい!
バイナリログを使った、Pub/Sub型のシステムはニーズはそれなりにありそうなものの、なかなかデファクトとなる手法が定まらない分野の1つだと感じてます。自分も過去に、MySQL Binlog Events ライブラリを試したりしました。
- Server Greeting Packet
- パスワード認証時にパスワードからハッシュ生成するために使うSaltが含まれている
- Ruby と TCP SocketでMySQLのサーバからバイナリログを読み取るクライアントを書いた
- Pub/Subみたいな非同期処理に活用
- 接続したら、最初に SET master_binlog_checksum=OFF にしないとエラーになる