2019年8月27日火曜日

MySQL Technology Cafe #5 に参加してきた

前回の、MySQL Technology Cafe #4 に続き、#5 に参加してきました。


タイムテーブル

 

時間 内容 登壇者
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 の新機能の紹介。


  • C言語の非同期API
    • 8.0.16でサポート
    • C言語のAPIの使い方を知りたければ、mysqldump.ccのソースが参考になる
    • 従来の同期APIの名前に  _nonblocking をつけた非同期APIがサポートされた
    • ポーリングするタイプの素朴な非同期API
  • 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標準の関わり

  • SQL標準で定められた機能でMySQLが最近サポートしたもの
    • CTE
      • RECURSIVE句はMySQLでは省略できない
      • 再帰が cte_max_recursion_depth を超えるとエラーになる→デフォルトは1000
    • Window Function
    • CHECK句
    • Generated Column
  • 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 ライブラリを試したりしました。


  • wireshark/tcpdump でMySQLのクライアントサーバのやりとりをみてみる!
    •  
       
    • https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_connection_phase.html
  • MySQLのパケットのフォーマット 
    • 最初の4バイトはパケット長

  • Server Greeting Packet
    • パスワード認証時にパスワードからハッシュ生成するために使うSaltが含まれている
  • Ruby と TCP SocketでMySQLのサーバからバイナリログを読み取るクライアントを書いた
    • Pub/Subみたいな非同期処理に活用
    • 接続したら、最初に SET master_binlog_checksum=OFF にしないとエラーになる

その他

  •  MySQL Casual Talk vol.12 が 9/13 にあります
    • https://mysql-casual.connpass.com/event/142689/
  •  db tech showcase 2019 もMySQLのセッションが盛りだくさん
    • https://www.db-tech-showcase.com/dbts/tokyo 

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。