Submit Search
Upload
Handlerさんコンニチワ
•
9 likes
•
10,377 views
yoku0825
Follow
2015/06/26 JPUG/MyNA合同勉強会
Read less
Read more
Technology
Report
Share
Report
Share
1 of 60
Download now
Download to read offline
Recommended
ペパボ de MySQL
ペパボ de MySQL
yoku0825
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
yoku0825
わたしを支える技術
わたしを支える技術
yoku0825
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
yoku0825
How to backup your mroonga database?
How to backup your mroonga database?
yoku0825
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
yoku0825
MySQLerの7つ道具
MySQLerの7つ道具
yoku0825
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLは
yoku0825
Recommended
ペパボ de MySQL
ペパボ de MySQL
yoku0825
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
yoku0825
わたしを支える技術
わたしを支える技術
yoku0825
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
yoku0825
How to backup your mroonga database?
How to backup your mroonga database?
yoku0825
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
yoku0825
MySQLerの7つ道具
MySQLerの7つ道具
yoku0825
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLは
yoku0825
TokuDB試してみる
TokuDB試してみる
yoku0825
MySQLチューニング
MySQLチューニング
yoku0825
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQL
yoku0825
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
yoku0825
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
yoku0825
ぐだぐだInnoDB
ぐだぐだInnoDB
yoku0825
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
yoku0825
MySQL clients
MySQL clients
yoku0825
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
yoku0825
MySQLステータスモニタリング
MySQLステータスモニタリング
yoku0825
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7
yoku0825
MySQLの全文検索に関するあれやこれや
MySQLの全文検索に関するあれやこれや
yoku0825
MySQL 初めてのチューニング
MySQL 初めてのチューニング
Craft works
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
Mysql casial01
Mysql casial01
matsuo kenji
MySQLをプロファイる(仮)
MySQLをプロファイる(仮)
yoku0825
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
20150630_MySQL勉強会
20150630_MySQL勉強会
masayoshi shiraishi
More Related Content
What's hot
TokuDB試してみる
TokuDB試してみる
yoku0825
MySQLチューニング
MySQLチューニング
yoku0825
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQL
yoku0825
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
yoku0825
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
yoku0825
ぐだぐだInnoDB
ぐだぐだInnoDB
yoku0825
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
yoku0825
MySQL clients
MySQL clients
yoku0825
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
yoku0825
MySQLステータスモニタリング
MySQLステータスモニタリング
yoku0825
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7
yoku0825
MySQLの全文検索に関するあれやこれや
MySQLの全文検索に関するあれやこれや
yoku0825
MySQL 初めてのチューニング
MySQL 初めてのチューニング
Craft works
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
Mysql casial01
Mysql casial01
matsuo kenji
MySQLをプロファイる(仮)
MySQLをプロファイる(仮)
yoku0825
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
What's hot
(20)
TokuDB試してみる
TokuDB試してみる
MySQLチューニング
MySQLチューニング
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQL
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
ぐだぐだInnoDB
ぐだぐだInnoDB
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
MySQL clients
MySQL clients
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQLステータスモニタリング
MySQLステータスモニタリング
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7
MySQLの全文検索に関するあれやこれや
MySQLの全文検索に関するあれやこれや
MySQL 初めてのチューニング
MySQL 初めてのチューニング
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
Mysql casial01
Mysql casial01
MySQLをプロファイる(仮)
MySQLをプロファイる(仮)
Kernel fcache-bug
Kernel fcache-bug
Similar to Handlerさんコンニチワ
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
20150630_MySQL勉強会
20150630_MySQL勉強会
masayoshi shiraishi
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
Mikiya Okuno
Symfony2#5 LT
Symfony2#5 LT
Masato Koizumi
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
yut148atgmaildotcom
PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
daye001
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
Mikiya Okuno
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
DNA Data Bank of Japan center
OCaml でデータ分析
OCaml でデータ分析
Akinori Abe
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon
Ryo ONODERA
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
Atomu Hidaka
Puppet on AWS
Puppet on AWS
Sugawara Genki
Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_cluster
Shinya Sugiyama
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Mr. Vengineer
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Mitsutoshi Nakano
Open VZ
Open VZ
Kazuaki Fujikura
retrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoF
たけおか しょうぞう
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
Similar to Handlerさんコンニチワ
(20)
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
20150630_MySQL勉強会
20150630_MySQL勉強会
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
Symfony2#5 LT
Symfony2#5 LT
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
PF部第19回資料 poor man's JTAG
PF部第19回資料 poor man's JTAG
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
OCaml でデータ分析
OCaml でデータ分析
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon
2013 06-22osc nagoya-netmf
2013 06-22osc nagoya-netmf
Puppet on AWS
Puppet on AWS
Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_cluster
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Open VZ
Open VZ
retrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoF
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
More from yoku0825
逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か
yoku0825
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
yoku0825
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku0825
わかった気になるMySQL
わかった気になるMySQL
yoku0825
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
yoku0825
MySQLアンチパターン
MySQLアンチパターン
yoku0825
MySQLerの7つ道具 plus
MySQLerの7つ道具 plus
yoku0825
5.7の次のMySQL
5.7の次のMySQL
yoku0825
mikasafabric for MySQL
mikasafabric for MySQL
yoku0825
とあるイルカの近況報告
とあるイルカの近況報告
yoku0825
MySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
yoku0825
MySQLと正規形のはなし
MySQLと正規形のはなし
yoku0825
MySQLおじさんの逆襲
MySQLおじさんの逆襲
yoku0825
地雷職人の朝は早い
地雷職人の朝は早い
yoku0825
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
紹介 of Anemometer
紹介 of Anemometer
yoku0825
MySQL5.7で遊んでみよう
MySQL5.7で遊んでみよう
yoku0825
More from yoku0825
(17)
逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
わかった気になるMySQL
わかった気になるMySQL
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
MySQLアンチパターン
MySQLアンチパターン
MySQLerの7つ道具 plus
MySQLerの7つ道具 plus
5.7の次のMySQL
5.7の次のMySQL
mikasafabric for MySQL
mikasafabric for MySQL
とあるイルカの近況報告
とあるイルカの近況報告
MySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
MySQLと正規形のはなし
MySQLと正規形のはなし
MySQLおじさんの逆襲
MySQLおじさんの逆襲
地雷職人の朝は早い
地雷職人の朝は早い
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
紹介 of Anemometer
紹介 of Anemometer
MySQL5.7で遊んでみよう
MySQL5.7で遊んでみよう
Handlerさんコンニチワ
1.
Handlerさんコンニチワ 主にInnoDB memcached PluginとNDB
memcached Engineの違 いについて 2015/06/26 yoku0825 MyNA・JPUG合同DB勉強会
2.
MySQLはこんな こともできるん だ、と思ったら 1/59
3.
さすが変態 (c)tmtms 元ネタ 2/59
4.
褒め⾔葉です (たぶん) 3/59
5.
\こんにちは/ yoku0825@とある企業のDBA オラクれない- ポスグれない- マイエスキューエる- 家に帰ると 妻の夫- せがれの⽗- ムスメの⽗- Twitter: @yoku0825 Blog: ⽇々の覚書 MyNA
ML: ⽇本MySQLユーザ会 4/59
6.
とある企業(未承諾広告※) 5/59
7.
GMOメディアでは SQLもNoSQLも⼤ 好きなエンジニア を募集しています 6/59
8.
CMおし まい 7/59
9.
MySQL de NoSQL 8/59
10.
HandlerSocket は有名ですよね 9/59
11.
MySQL de NoSQLのパターン mysqldがMySQLプロトコル以外の何かをしゃべる1. MySQLがNoSQLデータベースをバックエンドに持っている2. MySQLがJSON/BLOB/TEXT型にJSONを⼊出⼒する関数を 持っている 3. MySQLがデータ型としてJSONを持っている4. MySQLプロトコルでSQL以外の何かを語り掛けても結果が 戻ってくる (new!!) 5. MySQLじゃない何かがMySQLプロトコルじゃない何かをし ゃべってMySQLじゃないところからデータを引っ張ってく る
(えっ) 6. 10/59
12.
1. mysqldがMySQLプロトコル以外の何かをしゃべる HandlerSocket Plugin InnoDB
Memcached Plugin memcachedプロトコルはasciiもbinaryも– daemon̲memcached̲option=”-B ..”で渡してやればいけそう - MySQL HTTP Plugin daemon pluginの類 11/59
13.
補⾜(daemon plugin) MySQL 5.1から使える mysqldの中にもう1つ(じゃなくてもいいけど)バックグラウ ンド(じゃなくてもいいけど)スレッドを⽣やす 派⽣したスレッドはMySQLの動作にそれほど縛られずに mysqldの構造体もろもろに⼿が出せる 3306以外のポートをLISTENしたり- 本当にバックグラウンド処理っぽく動いてもいい- 12/59
14.
さすが 変態 13/59
15.
2. MySQLがNoSQLデータベースをバックエンドに持っ ている MySQL Cluster(NDBCLUSTER) Mroonga(Groonga) CONNECT(ODBC,
CSV, JSON, XML, ..) Cassandra, LevelDB, S3 Storage Engine Pluginの類 14/59
16.
PostgreSQLにしゃべりかけるストレージエンジンもあり ましたよ︖ :) NoSQLじゃなくてSQLだと思うけど。 my-post-engine?: a
postgres-engine for MySQL 15/59
17.
さすが 変態 16/59
18.
3. MySQLがJSON/BLOB/TEXT型にJSONを⼊出⼒する 関数を持っている MariaDBのDynamic Column MySQL
JSON UDF FacebookMySQLのDocstore MySQL 5.7はJSON型がどうこうというより、JSON UDFで SQLっぽく出し⼊れ可能にして、Generated Columnでイン デックスを張れるようにしているのが⼤きい。 17/59
19.
5. MySQLプロトコルでSQL以外の何かを語り掛けても結 果が戻ってくる Query Rewrite
Plugin (From 5.7) HANDLERステートメント 18/59
20.
さすが 変態 19/59
21.
6. MySQLじゃない何かがMySQLプロトコルじゃない何 かをしゃべってMySQLじゃないところからデータを引っ 張ってくる daemon protocol
backend InnoDB memcached Plugin mysqld memcached InnoDB NDB memcached Engine memcached memcached NDB mod̲ndb httpd http NDB openldap slapd LDAP NDB Native NDB API ndbmtd NDB NDB MySQL ClusterでNoSQLって⾔ったら基本これ。 20/59
22.
さすが 変態 21/59
23.
MySQLの仕組み 22/59
24.
MySQLの仕組み アプリケーション ライブラリー –↓ここからmysqld↓– Connector SQL Parser Optimizer Executor Handler Storage Engine 23/59
25.
分類はテキ トーです 24/59
26.
たとえばSELECTしてみる 25/59
27.
Connector UNIX Socket, TCP
SocketをLISTEN メインスレッドが担当 mysqld̲main関数の中⾝のことを⾔っているつもり- 接続があったらclone 認証その他はcloneされたスレッドがやる- 26/59
28.
Parser MySQLプロトコルのコマンド(COM̲SHUTDOWNとか COM̲PINGとか)も解析 COM̲QUERYならSQLとしてパース クエリーキャッシュを叩くのはコイツ ジェネラルログを吐くのもコイツ 27/59
29.
Optimizer 1テーブルだけでもJOINクラス 統計情報は(Handlerレイヤー通さず)ストレージエンジンの infoメソッドを直接たたいてるっぽい。 28/59
30.
Executor WHEREやORDER BYがインデックス(=ストレージエンジン )だけで解決できなかった時はExecutorがやる(Using where; Using
filesort; Using temporary;) ストレージエンジンだけで解決できる場合は handler::ha̲index̲nextすればいいだけ - ストレージエンジンから戻された結果に対してsql/filesort.cc的なこ とをやったりする。 - スローログを吐くのはコイツ。 29/59
31.
Handler ストレージエンジンを抽象化するためのレイヤー HANDLERステートメントはParserからいきなりここを叩く Executorから透過的 30/59
32.
Storage Engine Handlerクラスを継承して作る。 handlertonってなんか 飯度拉豚(ハンドラートン)
って感じでお なかがすいた Handlerレイヤーに公開するAPIさえ実装してあれば、それ 以外は⾃由。 31/59
33.
Handler(とそれより上)は APIを提供するだけで 実際にデータを格納しない- 実際にトランザクションを提供しない- それらはストレージエンジンのレイヤーで実装されている 32/59
34.
というわ けで 33/59
35.
MySQL de NoSQLのいいところ トランザクションで保護されるかどうかとか、それはちゃん とストレージエンジンを選べば気にしなくていい ストレージエンジンを間違えると死ぬ 34/59
36.
再掲 35/59
37.
HandlerSocket daemon plugin Handlerレイヤーのちょっと上あたりを叩く もともとの設計思想は 「通信量の削減」(=非MySQLプロトコルの利⽤)と 「パーサー,
オプティマイザーのCPUコストの削減」が狙いだったらしい。 - 「memcachedプロトコルしゃべるようにすればよかった」って松信さん が嘆いていたらしい。 - 36/59
38.
InnoDB Memcached Plugin daemon
plugin InnoDB API(の、結構下の部分)を直接叩く Handler APIでなくInnoDB APIを叩くのでInnoDB専⽤- 37/59
39.
MySQL HTTP Plugin daemon
plugin ちゃんと(?) Parserから通しているので、HandlerSocketや InnoDB memcached PluginのようにパースのCPUコストをか っ⾶ばすとかそういうつもりはなさそう 38/59
40.
HANDLERステートメント Optimizerを通さずに直接Handlerレイヤーを叩くための ステー トメント MySQL ::
MySQL 5.6 Reference Manual :: 13.2.4 HANDLER Syntax- さすが変態 39/59
41.
クエリーキャッシュ パースしてすぐに結果を返す こうやって並べてみるとアグレッシブだなこいつ 40/59
42.
NDBCLUSTER MySQLプロトコルの上に乗ったSQLをパースして、NDB APIに 変換してくれる変換器 NDBはそれ⾃体で独⽴したトランザクション対応の分散データストア- 41/59
43.
memcached NDB Engine MySQL何の関係もない NDB
APIをしゃべれるmemcached mod̲ndb? 知らない⼦ですね 42/59
44.
Mroonga Groongaもそれ⾃体で独⽴したデータベースサーバー Groonga-serverはgqtp, http(nginxでラップ), memcachedプロトコル あたりもしゃべれる - ラッパーモードにより更に変態度が上がる 転置索引部分はGroonga
API、データ部分は他のエンジンのHandlerを使 う - 43/59
45.
CONNECTストレージエンジン ストレージエンジンの中に更にプラガブルストレージエンジンの 層を作っちゃったみたいな 44/59
46.
Cassandra, LevelDB, S3,
Postgres ストレージエンジ ン 理屈はNDBCLUSTERやCONNECTと⼀緒で、MySQLプロト コルを他のAPIに変換する器としてのmysqld これ系は最近かなり廃れている(と思う) 45/59
47.
redisストレージエンジン 本当はredis daemon pluginも作って、「ほら、redisプロ トコルでしゃべりかけるとredis-serverからデータを引いて 返してくれるMySQL︕︕1」とかやりたかった。 いかにも変態っぽいでしょ︖
:)- redisプロトコルをしゃべるdaemon pluginがつらくて挫 折。 ストレージエンジンはスケルトン(Exampleストレージエンジン)があ るので割と書きやすい。 - yoku0825/bogus̲redis̲storage̲engine 46/59
48.
partitionストレージエンジン mysql56> show pluginsG .. ***************************
42. row *************************** Name: partition Status: ACTIVE Type: STORAGE ENGINE Library: NULL License: GPL .. ha̲partitionクラスが物理的には別のテーブルであるパーテ ィションを透過的に扱ってくれる。 47/59
49.
PERFORMANCE̲SCHEMAストレージエンジン mysql56> show pluginsG .. ***************************
10. row *************************** Name: PERFORMANCE_SCHEMA Status: ACTIVE Type: STORAGE ENGINE Library: NULL License: GPL .. カウンターの更新はHandler使ってないので、SELECTでア クセスするためのインターフェイス以外にあんまり思いつか ない。。 48/59
50.
Binlogストレージエンジン ( ゚д゚) えっ mysql56>
SHOW PLUGINSG *************************** 1. row *************************** Name: binlog Status: ACTIVE Type: STORAGE ENGINE Library: NULL License: GPL .. 49/59
51.
Binlogストレージエンジン ちゃんとhandlertonを持ってる Breakpoint 1, binlog_init
(p=0x147bcc0) at /home/yoku0825/mysql-5.6.25/sql/binlo g.cc:887 (gdb) p *hton $4 = { state = SHOW_OPTION_YES, db_type = DB_TYPE_BINLOG, slot = 2, savepoint_offset = 0, close_connection = 0x895db0 <binlog_close_connection(handlerton*, THD*)>, savepoint_set = 0x89bed0 <binlog_savepoint_set(handlerton*, THD*, void*)>, savepoint_rollback = 0x89cb60 <binlog_savepoint_rollback(handlerton*, THD*, vo id*)>, savepoint_rollback_can_release_mdl = 0x8944a0 <binlog_savepoint_rollback_can_r elease_mdl(handlerton*, THD*)>, savepoint_release = 0, commit = 0x892590 <binlog_commit(handlerton*, THD*, bool)>, rollback = 0x8a27a0 <binlog_rollback(handlerton*, THD*, bool)>, prepare = 0x892580 <binlog_prepare(handlerton*, THD*, bool)>, 50/59
52.
Binlogストレージエンジン おそらく、2相コミットをフツーのXAと同じAPIで処理した かったから ha̲binlogクラスは存在しない(フツーのHandlerレイヤーを通ったマ ッピングじゃない) - sql/handler.ccの中にちょこちょこいるくらい。- innodb̲support̲xaを切るとバイナリーログのシリアル性 が損なわれるかもよ、というのもそれなら頷ける MySQL :: MySQL
5.6 Reference Manual :: 14.11 InnoDB Startup Options and System Variables - 51/59
53.
MySQLプロトコル でSQL以外の何か を語り掛けても結 果が戻ってくる 52/59
54.
Query Rewrite Plugin Parserの⼿前を取るPre-parse
Query Rewriteと Parserの後ろ(Optimizerの⼿前)を取るPost-parse Query Rewriteがある 53/59
55.
クエリーリライト mysqlコマンドラインクライアントを起動してるのに、うっ かりlsとか叩いちゃったことありませんか︖ mysql57> ls; +--------------+ | Tables_in_d1
| +--------------+ | t1 | +--------------+ 1 row in set, 1 warning (0.01 sec) mysql57> SHOW WARNINGS; +-------+------+---------------------------------------------------------------- ---+ | Level | Code | Messag e | +-------+------+---------------------------------------------------------------- ---+ | Note | 1105 | Query 'ls' rewritten to 'SHOW TABLES' by plugin: rewrite_exampl e. | +-------+------+---------------------------------------------------------------- ---+ 1 row in set (0.00 sec) 54/59
56.
クエリーリライト catとかお好きですか︖ mysql57> cat t1; +-----+-------+ |
num | val | +-----+-------+ | 1 | one | | 2 | two | | 3 | three | +-----+-------+ 3 rows in set, 1 warning (0.02 sec) 55/59
57.
クエリーリライト サーバーサイドで書き換えているので、クライアントを選ばな い。 56/59
58.
夢は無限 ⼤ 57/59
59.
さすが 変態 58/59
60.
Questions and/or Suggestions? 59/59
Download now