MySQL關於HANDLER命令的說明

2021-10-04 03:55:29 字數 1036 閱讀 6015

官方給出的格式:

handler tbl_name open [ [as] alias]

handler tbl_name read index_name (value1,value2,...)

[ where where_condition ] [limit ... ]

handler tbl_name read index_name

[ where where_condition ] [limit ... ]

handler tbl_name read

[ where where_condition ] [limit ... ]

handler tbl_name close

假設有一張表叫』user』,有一列叫』name』,該列有乙個索引叫』name_index』,如果要查詢name為小明的記錄,那麼handler語句的寫法就是:

handler user open as user;

handler user read name_index=('小明') ;

handler user close;

需要注意的是,這個語句只會返回一條記錄(如果表中有滿足條件的記錄),如果要返回多條,可以這麼寫:

handler user open as user;

handler user read name_index=('小明') limit 10 ;

handler user close;

但是依舊有乙個問題:我們沒辦法一次返回所有的記錄——因為我們並不知道滿足條件的記錄一共有多少條。

官方的說法是:

handler查詢效能比select更好
但從上面我們也能看出,handler的使用場景比起select來說要少的多(它也不支援分割槽表),畢竟handler is a somewhat low-level statement。

但作為乙個查詢技巧,結合自己一定的使用場景,還是值得一試的。

[1]:

關於Handler 的Post方法

我們都知道handler中的post方法,並且也是經常使用它 handler.post new runnable 用它可以更新乙個元件的內容,我們也知道hanlder中也有乙個handler.sendmessage message msg 方法,這兩個方法有什麼區別呢?先看一下message類中定義...

MySQL儲存過程 handler用法

參考官方手冊 declare handler action handler for condition value condition value statement handler action condition value 官方手冊sqlstate與error code參考 continue ...

記錄 關於匿名Handler記憶體洩露問題

rt 在inspect code中發現了某個記憶體洩露的提示 提示在這個activity類中可能存在記憶體洩露,如下 常規的handler寫法,此處看的有點蒙,為什麼會有記憶體洩露,於是度娘查了一下。在查明原因後,有兩種解決方案,如下 1 通過程式邏輯來進行保護,即removecallbacks 方...