innodb_ruby のご紹介
はじめに
このエントリは Ruby Advent Calendar 2015 の 23 日目のエントリです
きっかけ
業務の関係でふと innodb の index の構造について詳しく知りたいと思って調べていたところ以下のエントリーを発見しました
innodb_ruby はとても面白そうなのにマニアックすぎるのか、国内ではあまり紹介されていないのをもったいなく思い、ご紹介したいと思いました。
ちなみに RubyKaigi 2015 の LT の CFP にもこのネタで出して落選しましたw
注意事項
ざっくり試してみたところ以下の機能は今のところ壊れているようです
あとこの機能はドキュメントがないので使いこなすの難しそう
環境構築
以下のように faker 等を利用して dummy data を作る rake task 等を用意して
index は手動で貼りました (実験用なので適当です )
主な機能
※ 理解が足らない部分があるかと思いますのでお気づきの点がございましたらご指摘いただけると幸いです
こちらに書かれているような機能があります
ざっくりと記事と同じ事を自分で作った dummy data に適用してみました (mysql の data は手元にシンボリックリンクを貼りました。homebrew で入れた場合 /usr/local/var/mysql 以下にあるはずです)
ファイルにリダイレクトしたものはこちらです (結構ファイルサイズが大きいので注意)
page-dump-without-describer.txt · GitHub
page-dump-with-primary-describer.txt · GitHub
page-dump-with-state-describer.txt · GitHub
index-recurse-with-primary-describer.txt · GitHub
page-dump の結果とか decode できると良いんだけどな…
おわりに
試してみた感想としてはやはり難しく、ドキュメントが足りていない気がしました
この辺のエントリーも面白そうなのでもう少し理解できるようになると良いなー
この記事を見て innodb_ruby に興味を持ってくださった方がいろいろ試してくださってノウハウが増えると良いなと思います