昨日、突然MySQLのVPストレージエンジンに目覚めて、少し触ってみていました。
http://d.hatena.ne.jp/sakaik/20110915/vp1
http://d.hatena.ne.jp/sakaik/20110915/vp2
ドキュメントが見あたらずに、手探りで遊んでいたのですが、なんとちゃんとありました!
VPのバイナリをダウンロードをしたのが、http://spiderformysql.com/download_spider.html だったので、ずっとこちらのサイトばかり見ていたのですが、実はドキュメントは、↓にあります。
https://launchpad.net/vpformysql
(vp-doc-*.tgz というファイルがそうです)
#ちなみに、spiderは、こちら: https://launchpad.net/spiderformysql
ドキュメントには、VPの開発ポリシー(使い方によっては問題を引き起こす可能性があるものでも、安易にフタをせず、便利であると判断したものは注意喚起付の上で実装する)も記述されているので、VPを使いたい人は必見です。
また、パラメタについても詳細に記述してあります。パラメタの指定によって、随分といろいろなことができるのですね。どんなパラメタがあるのか、以下に整理しました(基本的にはドキュメントの整形です。読みやすさのために一部表現を変更している部分があります)
サーバパラメタ
パラメタ名 | 説明 |
---|---|
vp_bgi_mode | バックグラウンド挿入のモード |
vp_bgs_mode | バックグラウンド検索のモード |
vp_bgu_mode | バックグラウンド更新のモード |
vp_udf_ct_bulk_insert_interval(*) | bulk insertから次のbulk insertまでのインターバル |
vp_udf_ct_bulk_insert_rows(*) | 1回のbulk insertでコピーする行数 |
vp_child_binlog | 行レベルレプリケーション選択時に、子テーブルに個々に対するバイナリログの出力有無 |
vp_choose_table_mode | 検索時に利用するテーブルの選択モード |
vp_choose_table_mode_for_lock | 更新などのロック時に利用するテーブルの選択モード |
vp_multi_range_mode | multi_range検索の際に子テーブルに対してmulti_rangeを引き渡す際のモード |
vp_support_xa(*) | Vertical Partitioningストレージエンジンのxaサポートの有無 |
(*)記号がついているもの意外は、セッションパラメタとして個別設定が可能
テーブルパラメタ
パラメタ名 | 短名 | 説明 | デフォルト値 |
---|---|---|---|
auto_increment_table | ait | テーブルにauto incrementカラムを追加した際に、採番を行うために利用する子テーブルの番号 | 1(table_listに記載した最初のテーブル) |
bgi_mode | bgi | バックグラウンド挿入のモード | 0:利用しない |
bgs_mode | bgs | バックグラウンド検索のモード | 0:利用しない |
bgu_mode | bgu | バックグラウンド更新のモード | 0:利用しない |
child_binlog | cbl | 行レベルレプリケーション選択時に、子テーブルに個々に対するバイナリログの出力有無 | 0:子個々のbinlogを出力しない |
choose_ignore_table_list | cit | 検索時に利用するテーブルの選択から指定した番号のテーブルを除外する | 指定なし |
choose_ignore_table_list_for_lock | cil | ロック付検索時に利用するテーブルの選択から指定した番号のテーブルを除外する。更新は行われる | 指定なし |
choose_table_mode | ctm | 検索時に利用するテーブルの選択モード | 0:最適化モード。 |
choose_table_mode_for_lock | cml | 更新などのロック時に利用するテーブルの選択モード | 1:「table_list」の前から順 |
default_database | ddb | 子テーブルのデータベース | 親テーブルDBと同じ |
infomation_source_table | ist | テーブルステータス取得のモード | 0:全ての子テーブルからテーブルステータス取得を行う |
multi_range_mode | mrm | multi_range検索の際に子テーブルに対して引き渡す際のモード | 1:multi_range検索のまま引き渡す |
pk_correspond_mode | pcm | 親テーブルと子テーブルのPK照合のモード | 0:完全照合 |
support_table_cache | stc | テーブルキャッシュ対応のモード | 1:クエリキャッシュ非対応 |
table_count_mode | tcm | テーブルの全件数を取得する際のモード | 0:通常通り全件数をカウント |
table_name_list | tnl | 子テーブル名のリスト。「table_name_list "tbl_a db_b.tbl_b"」のように指定する | - |
table_name_prefix | tnp | 子テーブル名につける接頭語 | なし |
table_name_suffix | tns | 子テーブル名につける接尾語 | なし |
zero_record_update_mode | zru | 0件更新の際のモード | 0:何もしない |
一覧を眺めているだけでも、どんなことができるんだろう、何のためにこのパラメタをつけたのだろうと、想像が膨らみますね。
.