2ind機能の改良
2indについていくつか。
commit r33: senna_2ind_countステータス変数の削除
senna_2ind_countというステータス変数があったのですが、これを廃止しようと思います。
理由は、現在のsenna_2ind_countの実装では2ind機能の挙動を捕捉しきれていないから、です。。。
例えば以下のSQL文で2ind機能が働いても、変数はカウントアップされていませんでした。
SELECT COUNT(*) FROM t1 WHERE MATCH(c1) AGAINST("hoge");
commit r34: senna_2ind_XXXステータス変数の追加
senna_2ind_countの廃止の代わりに、新しいステータス変数を2つ導入しようと検討中です。
senna_2ind_reads / senna_2ind_requests * 100 = 2ind発動率という感じです。
※この2つの変数は開発時のデバッグ用途の性格が強いのでリリース版に入るかどうかは未定です。ifdefで分けるかな。。。
疑問
ステータス変数ってストレージエンジン側からはアクセスしてないみたいなんだけど、アクセスさせたい場合にはどうしたらいいんかね。やっちゃいけないのかなぁ。
ft_nlq_read_next関数
backtrace 1
#1 0x00000000006aa01c in ha_myisam::ft_read (this=0x8e5e008, buf=0x8e5e150 "þ\030") at ha_myisam.cc:2010 #2 0x000000000061b115 in join_ft_read_first (tab=0x8f77e30) at sql_select.cc:11365 #3 0x000000000061b637 in sub_select (join=0x8e9aaa0, join_tab=0x8f77e30, end_of_records=false) at sql_select.cc:10563 #4 0x00000000006247b6 in do_select (join=0x8e9aaa0, fields=0x8e9bd28, table=0x0, procedure=0x0) at sql_select.cc:10303
backtrace 2
#1 0x00000000006aa01c in ha_myisam::ft_read (this=0x8e5e008, buf=0x8e5e150 "þ\025") at ha_myisam.cc:2010 #2 0x000000000061af7d in join_ft_read_next (info=0x8f77eb0) at sql_select.cc:11374 #3 0x000000000061b672 in sub_select (join=0x8e9aaa0, join_tab=0x8f77e30, end_of_records=false) at sql_select.cc:10572 #4 0x00000000006247b6 in do_select (join=0x8e9aaa0, fields=0x8e9bd28, table=0x0, procedure=0x0) at sql_select.cc:10303
backtrace 3
#1 0x00000000006aa01c in ha_myisam::ft_read (this=0x8e5e008, buf=0x8e5e150 "þ\030") at ha_myisam.cc:2010 #2 0x000000000061af7d in join_ft_read_next (info=0x8f77eb0) at sql_select.cc:11374 #3 0x000000000061b672 in sub_select (join=0x8e9aaa0, join_tab=0x8f77e30, end_of_records=false) at sql_select.cc:10572 #4 0x00000000006247b6 in do_select (join=0x8e9aaa0, fields=0x8e9bd28, table=0x0, procedure=0x0) at sql_select.cc:10303
呼出回数
1クエリあたりの関数呼出回数。
関数名 | 回数 |
ft_nlq_read_next | ヒット行数 + 1 |
join_ft_read_first | 1 |
join_ft_read_next | ヒット行数 |
sub_select | テーブル数 + 1 |
do_select | 1 |
今、ft_nlq_read_next関数で2ind判定しているところを、join_ft_read_XXXとかでやるようにしたい。できるのかー?