ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2009-06-28

オトコの近況 - ブログ停滞中のワケ

最近めっきりとブログの更新が遠のいている。

ついにネタ切れか?!

力尽きたか?!

中二病完治か?!


などという心配はしないで頂きたい。至って快調にマイペースで筆を進める毎日を送っている。ただしブログにではなくMySQL関連の書籍として。ブログは書籍の執筆が完了してから本格的に再開しようと思うので、その際にはまた是非お付き合い頂きたい。書籍も頑張って書いているので是非よろしくお願いしたい。

今書いてるのはこんな内容のものだ。原稿からプチ抜粋。

クエリキャッシュのヒット率はどのように計算すれば良いのでしょうか?ここで改めて説明するために、上の一覧ではクエリキャッシュについては敢えて省略しましたが、クエリキャッシュのヒット率は次の計算式で求めることが可能です。

Qcache_hits / (Qcache_hits + Com_select)

Qcache_hitsは文字通り、クエリキャッシュにヒットして、キャッシュからクライアントへ結果が送信された回数です。キャッシュミスが発生すると、MySQL ServerはSELECT文を実行してテーブルに対してクエリを行い、その際にCom_selectをカウントアップします。つまり、クエリキャッシュが有効になっている場合は、Com_selectがキャッシュミスをした回数を表すのです。SELECTを実行して結果を取得すると、クエリキャッシュへ結果がキャッシュされる場合と、結果セットが大きすぎる理由などによってキャッシュされない場合があります。キャッシュされた場合はQcache_insertsがカウントアップされ、されなかった場合にはQcache_not_cachedがカウントアップされます。従って、次のような関係式が成り立つでしょう。

Com_select ≒ Qcache_inserts + Qcache_not_cached

これを上記の式に代入すると、クエリキャッシュのヒット率は次のように変形することが可能です。

Qcache_hits / (Qcache_hits + Qcache_inserts + Qcache_not_cached)

Com_selectは離れた位置にあるので、Qcache_%だけを見てヒット率が判断できるこの式を用いると便利でしょう。この式ならば「SHOW GLOBAL STATUS LIKE 'Qcache%'」というコマンドでステータス変数を表示するだけで事足ります。

本のタイトルは「金利0無利息キャッシング - クエリキャッシュできます!!」ではなく(ってかそのタイトルはパクリだよ!>俺)もっと広い範囲の内容をカバーした書籍になる予定なのでタイトルもそれに相応しいものになるだろう。タイトルは書き終えたら発表します。

書籍は書いていてもPlanet MySQLのチェックは欠かさないのが日本男児たるものの嗜みだが、ちょうど本日sh2氏による魂の籠もった検証結果報告のエントリが投稿されているので以下に紹介させて頂く。

MySQL InnoDB Pluginのデータ圧縮機能
http://d.hatena.ne.jp/sh2/20090628

InnoDB Pluginとは、MySQLに組み込まれているInnoDBを置き換えるストレージエンジンで、デフォルトのものにはない特徴を備えている。sh2氏によって検証が行われているデータ圧縮機能はInnoDB Pluginだけで使える拡張機能である。だからアナタが使ってるInnoDBでデータ圧縮が出来なくても不具合ではないので焦らないように!InnoDB Pluginを利用するには、以下のページからダウンロードしてインストールする必要があるのでチャレンジャーな人達は試して頂きたい。
http://www.innodb.com/products/innodb_plugin/download/

インストール方法はこちら。
http://www.innodb.com/doc/innodb_plugin-1.0/innodb-plugin-installation.html

sh2氏によると、Wikipediaのデータをおよそ半分に圧縮できたらしい。なんと、InnoDB Pluginを使えばデータ量が約半分になるということである。これはかなりの節約になるだろう。

ところで、とても偶然なタイミングなのだが、IBMの中の人もDB2の圧縮機能の検証をされていたようである。

ClubDB2 場外ブログ: 圧縮機能で遊んでみる

http://clubdb2.blogspot.com/2009/06/blog-post_27.html

こちらも圧縮した結果は半分程度だそうだ。

つまりInnoDB PluginとDB2 V9.xの圧縮機能は互角?!高価な商用データベースであるDB2と肩を並べるぐらいの圧縮率というのは、InnoDB Pluginの圧縮機能はかなり優秀だと言っていいのではないだろうか。

0 コメント:

コメントを投稿