MySQL关于HANDLER命令的说明

一、 语法

官方给出的格式:

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 

假设有一张表叫'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的使用场景比起SELECT来说要少的多(它也不支持分区表),毕竟HANDLER is a somewhat low-level statement。
但作为一个查询技巧,结合自己一定的使用场景,还是值得一试的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 3,846评论 0 11
  • 1. 了解SQL 1.1 数据库基础 ​ 学习到目前这个阶段,我们就需要以某种方式与数据库打交道。在深入学习MyS...
    锋享前端阅读 1,152评论 0 1
  • MSSQL 跨库查询(臭要饭的!黑夜) 榨干MS SQL最后一滴血 SQL语句参考及记录集对象详解 关于SQL S...
    碧海生曲阅读 5,713评论 0 1
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,150评论 0 0
  • 下午2点,姐姐出门上学了,小麦才肯爬到我身上睡觉。 她躺在我的臂弯里,直勾勾地看着我,酝酿睡意。 从出生起,她就这...
    一片禾田阅读 327评论 0 0