26. MySQL X Protocol(MySQL Shell)
レイヤー的にはMySQL Protocolを置き換える
TCPの上に X Protocol を載せてる-
上にSQLまたはX Dev APIが載る-
X Protocolをしゃべるコマンドラインクライアントが MySQL Shell-
「NoSQLちっくなライブラリーから使うなら、MySQLプロ
トコルは重すぎるよね」「だからProtocol Buffersベースの
新しいプロトコルを実装したよ」
本当にやりたいことはたぶん 非同期処理-
非同期処理は 未実装-
25/54
28. JSON型 + Generated Column + X Protocol
“MySQL Docstore” って命名してた
InnoDBのトランザクション性能をそのままにNoSQLちっくなラ
イブラリーとの相性を良くしようと思ったんだろう
ちなみに “Cross(X)over between relational and document
model” で MySQL X らしい
SQL Parser
MySQL Protocol Parser
Storage Engine
MySQL X
libmysqlclient Ruby/MySQL
mysql Ruby
tmtms(?)
mysqlsh
27/54
29. 進化の⽅向
Release Series Common NoSQL side SQL side
5.5 utf8mb4 (HandlerSocket) -
5.6 クラッシュセーフス
レーブ, DATETIME
型, オンライン
ALTER TABLE
InnoDB
Memcached
InnoDB FTS,
InnoDB GIS, オプ
ティマイザーの強化
5.7(labs) - MySQL HTTP
Plugin
-
5.7 InnoDBの強化 InnoDB
Memcached +
MySQL X, JSON型
Generated
Column(?), オプテ
ィマイザーの強化
8.0 データディクショナ
リー, GR,
utf8mb4̲unicode
̲900̲ci
- 共通テーブル式, ロ
ール, ヒストグラム
28/54
43. yoku0825的8.0観察ポイント
NoSQL Side
MySQL X Pluginは5.6 -> 5.7のInnoDB Memcachedのように今度は性能
を上げにくるか︖ 未実装の非同期処理にも期待
SQL Side
“特に意識せずに速くなる” ものと、 “新しく導⼊されて意識しないと有効活
⽤できない” もの両⽅が混在
運⽤ Side
SET PERSIST とか今までそれなりに要望があったであろうものが追加、パラ
メーターのオンライン変更範囲拡⼤にも期待、p̲sの更なる機能追加(特に
5.7で中途半端に終わったレプリケーション関連)
レプリケーション Side
今までのレプリケーションはそろそろひと段落して、Group Replication
(≒InnoDB Cluster) をどこまで使い物にできるか
42/54
53. 「kamipoのハハ=パパ問題」
In addition to utf8mb4, we are also considering
switching the default collation to be
utf8mb4̲unicode̲520̲ci.
Planning the defaults for MySQL 5.8
MySQL Bugs: #79977: utf8mb4̲unicode̲520̲ci donʼt
make sense for Japanese FTS
52/54