一、 語法
官方給出的格式:
HANDLER tbl_name OPEN [ [AS] alias]
HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ { FIRST | NEXT }
[ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name CLOSE
假設(shè)有一張表叫'user',有一列叫'name',索引列叫'name_index',如果要查詢name為小明的記錄,那么HANDLER語句的寫法就是:
handler user open as user;
handler user READ name_index=('小明') ;
handler user close;
需要注意的是,這個(gè)語句只會(huì)返回一條記錄(如果表中有滿足條件的記錄),如果要返回多條,可以這么寫:
handler user open as user;
handler user READ name_index=('小明') limit 10 ;
handler user close;
但是依舊有一個(gè)問題:我們沒辦法一次返回所有的記錄——因?yàn)槲覀儾⒉恢罎M足條件的記錄一共有多少條。
二、為什么要用HANDLER而不是“SELECT”語句
官方的說法是:
HANDLER查詢性能比SELECT更好
但從上面我們也能看出,HANDLER的使用場景比起SELECT來說要少的多(它也不支持分區(qū)表),畢竟HANDLER is a somewhat low-level statement。
但作為一個(gè)查詢技巧,結(jié)合自己一定的使用場景,還是值得一試的。