読者です 読者をやめる 読者になる 読者になる

innodb_ruby のご紹介

はじめに

qiita.com

このエントリは Ruby Advent Calendar 2015 の 23 日目のエントリです

きっかけ

業務の関係でふと innodb の index の構造について詳しく知りたいと思って調べていたところ以下のエントリーを発見しました

blog.jcole.us

innodb_ruby はとても面白そうなのにマニアックすぎるのか、国内ではあまり紹介されていないのをもったいなく思い、ご紹介したいと思いました。

ちなみに RubyKaigi 2015 の LT の CFP にもこのネタで出して落選しましたw

注意事項

ざっくり試してみたところ以下の機能は今のところ壊れているようです

github.com

あとこの機能はドキュメントがないので使いこなすの難しそう

github.com

環境構築

以下のように faker 等を利用して dummy data を作る rake task 等を用意して

github.com

index は手動で貼りました (実験用なので適当です PERSON BOWING DEEPLY)

gist.github.com

主な機能

※ 理解が足らない部分があるかと思いますのでお気づきの点がございましたらご指摘いただけると幸いです

こちらに書かれているような機能があります

blog.jcole.us

ざっくりと記事と同じ事を自分で作った dummy data に適用してみました (mysql の data は手元にシンボリックリンクを貼りました。homebrew で入れた場合 /usr/local/var/mysql 以下にあるはずです)

gist.github.com

ファイルにリダイレクトしたものはこちらです (結構ファイルサイズが大きいので注意)

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 できると良いんだけどな…

おわりに

試してみた感想としてはやはり難しく、ドキュメントが足りていない気がしました

この辺のエントリーも面白そうなのでもう少し理解できるようになると良いなー

blog.jcole.us

この記事を見て innodb_ruby に興味を持ってくださった方がいろいろ試してくださってノウハウが増えると良いなと思います