MySQL X Protocol(MySQLShell)
レイヤー的にはMySQL Protocolを置き換える
TCPの上に X Protocol を載せてる-
上にSQLまたはX Dev APIが載る-
X Protocolをしゃべるコマンドラインクライアントが MySQL Shell-
「NoSQLちっくなライブラリーから使うなら、MySQLプロ
トコルは重すぎるよね」「だからProtocol Buffersベースの
新しいプロトコルを実装したよ」
本当にやりたいことはたぶん 非同期処理-
非同期処理は 未実装-
25/54
JSON型 + GeneratedColumn + 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 CommonNoSQL 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
「kamipoのハハ=パパ問題」
In addition toutf8mb4, 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