HANDLER tbl_name OPEN [AS alias];
HANDLER tbl_name READ index_name {=|<=|>=|<|>} (val1,val2...) [WHERE cond] [LIMIT ...];
HANDLER tbl_name READ index_name {FIRST|NEXT|PREV|LAST} [WHERE cond] [LIMIT ...];
HANDLER tbl_name READ {FIRST|NEXT} [WHERE cond] [LIMIT ...];
HANDLER tbl_name CLOSE;
SELECT 高 40-45%。Sql_cmd_handler_open/read/close::executeha_innobase::init_table_handle_for_HANDLER、ha_partition::init_table_handle_for_HANDLER(5.7+ 支持分區表)SELECT col1,col2。LIMIT 1,無法批量游標讀取。文檔稱「允許髒讀」,但 InnoDB 實現中 init_table_handle_for_HANDLER 顯式構建 ReadView,執行一致性讀(LOCK_NONE),實測無髒讀。
HANDLER 是「繞過優化器的極速讀取通道」,適合極端高併發主鍵點查場景,但缺乏標準化、寫入支持、列投影、批量游標,導致生產環境鮮見。理解其原理有助於認識 MySQL 執行路徑,技術選型時權衡利弊。