MYSQL中如何使用handler

技术MYSQL中如何使用handler小编给大家分享一下MYSQL中如何使用handler,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!HAN

边肖想和大家分享一下如何在MYSQL中使用handler。相信大部分人还是不太了解。因此,我想分享这篇文章供你参考。希望你看完这篇文章后收获多多。让我们一起来看看。

HANDLERtbl_nameOPEN[ASalias]

HANDLERtbl _ name readindex _ name {=|=|=| }(值1,值2,)

[where _ where条件][限制.]

HANDLERtbl _ name readindex _ name { FIRST | NEXT | PREV | LAST }

[where _ where条件][限制.]

HANDLERtbl _ name read { FIRST | NEXT }

[where _ where条件][限制.]

HANDLERtbl_nameCLOSEHANDLER语句提供了到表存储引擎接口的直接通道。HANDLER可用于MyISAM和InnoDB表。[@more@]

处理者.OPEN语句用于打开一个表,通过后续的HANDLER建立一个读取表的通道.READ语句。

该表目标不会被其他线程共享,并且在线程调用HANDLER之前不会关闭.关闭或线程终止。

如果使用别名打开表,则必须使用该别名而不是表名来进一步引用具有其他HANDLER语句的表。

如果指定的索引满足给定值并满足WHERE条件,则第一个HANDLER.READ语法取出一行。

如果有多列索引,请将索引列值指定为逗号分隔的列表。您可以为索引中的所有列指定值,

您也可以为索引列最左边的前缀指定一个值。假设一个索引包含三个名为col_a、col_b和col_c的列,它们按此顺序排列。

HANDLER语句可以为索引中的所有三列指定值,或者为最左边前缀中的每一列指定值。举个例子:

处理者.index _ name=(col _ a _ val,col _ b _ val,col _ c _ val).处理者.index _ name=(col _ a _ val,col _ b _ val)。索引的顺序符合WHERE条件。

第三个HANDLER.READ语法按照自然行的顺序从表中取出一行。自然行的顺序满足WHERE条件。

当您想要扫描整个表时,该语句比HANDLER tbl_name READ index_name更快。行的自然顺序是指存储在。

MyISAM表数据文件的顺序。这种说法也适用于InnoDB表,但是没有这样的概念,因为没有独立的数据文件。

没有LIMIT子句,所有形式的HANDLER.READ语句只取出一行。如果要返回多行,应该添加一个LIMIT子句。此声明发表于。

SELECT语句具有相同的语法。参见第13.2.7节“选择语法”。

处理者.CLOSE用于关闭用HANDLER打开的表.打开。

注意:要使用HANDLER接口查找表的主键,请使用带引号的标识符“PRIMARY”:

HANDLERtbl_nameREAD`PRIMARY `(.);HANDLER是一个相对低级的语句。例如,它不提供一致性。也就是说,HANDLER.OPEN不能对表进行快照,也不能锁定表。这意味着,

当HANDLER.OPEN语句被写入时,表数据可以被更改(由这个线程或其他线程),这些更改只会部分出现在HANDLER中.NEXT或HANDLER.PREV扫描。

使用HANDLER接口代替常规的SELECT语句有多个原因:

·         HANDLER比SELECT更快:

o        一个指定的存储引擎管理程序目标为了HANDLER...OPEN进行整序。该目标被重新用于该表的后续的HANDLER语句;不需要对每个语句进行重新初始化。

o        涉及的分析较少。

o        没有优化程序或查询校验开销。

o        在两个管理程序请求之间,不需要锁定表。

o        管理程序接口不需要提供外观一致的数据(例如,允许无条理的读取),所以存储引擎可以使用优化,而SELECT通常不允许使用优化。

·         有些应用程序使用与ISAM近似的接口与MySQL连接。使用HANDLER可以更容易地与这些应用程序连接。

·         HANDLER允许您采用一种特殊的方式进出数据库。而使用SELECT时难以采用(或不可能采用)这种方式。有些应用程序可以提供一个交

互式的用户接口与数据库连接。当与这些应用程序同时使用时,用HANDLER接口观看数据更加自然。

示例:

mysql> desc test1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| a     | int(11)     | YES  | MUL | NULL    |       |
| b     | varchar(45) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

mysql> show index from test1;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| test1 |          1 | ab       |            1 | a           | A         |           4 |     NULL | NULL   | YES  | BTREE      |         |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
1 row in set (0.00 sec)
mysql> handler test1 open;
Query OK, 0 rows affected (0.00 sec)
mysql> handler test1 read first;
+------+------+
| a    | b    |
+------+------+
|    1 | 2    |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read next;
+------+------+
| a    | b    |
+------+------+
|    1 | 2    |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read next;
+------+------+
| a    | b    |
+------+------+
|    1 | 2    |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read next;
+------+------+
| a    | b    |
+------+------+
|    3 | 4
  |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read next;
+------+------+
| a    | b    |
+------+------+
|    1 | 2    |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read next;
+------+------+
| a    | b    |
+------+------+
|    3 | 4
  |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read next;
+------+------+
| a    | b    |
+------+------+
|    3 | 4
  |
+------+------+

mysql> handler test1 read next;
Empty set (0.00 sec)

mysql> handler test1 read next;
Empty set (0.00 sec)

mysql> handler test1 read next;
Empty set (0.00 sec)

mysql> handler test1 read next;
Empty set (0.00 sec)

mysql> handler test1 read ab=(1);
+------+------+
| a    | b    |
+------+------+
|    1 | 2    |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read ab=(2);
Empty set (0.00 sec)

mysql> handler test1 read ab=(3);
+------+------+
| a    | b    |
+------+------+
|    3 | 4
  |
+------+------+
1 row in set (0.00 sec)

mysql> handler test1 read ab=(3) limit 10;
+------+------+
| a    | b    |
+------+------+
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
+------+------+
10 rows in set (0.00 sec)

mysql> handler test1 read ab=(3) limit 20;
+------+------+
| a    | b    |
+------+------+
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
|    3 | 4
  |
+------+------+
10 rows in set (0.00 sec)

以上是“MYSQL中如何使用handler”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52406.html

(0)

相关推荐

  • 如何用html5绘制表格

    技术如何用html5绘制表格如何用html5绘制表格,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。表格一般通过3个标签来构建,分别为表格标签,行标签和单

    攻略 2021年11月25日
  • 十大名木手串,全球十大最名贵木材有哪些

    技术十大名木手串,全球十大最名贵木材有哪些感谢推荐十大名木手串!我个人是很喜欢盘玩木材的,尤其是小叶紫檀。最近迷上了桃木,因为桃木那独有的纹理是非常吸引我的。如下这些就是最世界珍贵的十种木材。一、乌木乌木(阴沉木)兼备木

    生活 2021年11月1日
  • 宁冈县,黄河界保卫战发生于江西哪个县

    技术宁冈县,黄河界保卫战发生于江西哪个县宁冈县宁冈县。
    1928年8月,湘赣敌军乘毛泽东带领三十一团一营前往湘南迎还红军大队之机,纠集七个团的兵力会攻井冈山军事根据地。8月30日,吴尚、王均部各两个团进攻黄洋界哨口。红军

    生活 2021年10月29日
  • redis缓存出现异常怎么处理(redis缓存遇到的问题及解决方法)

    技术如何解决Redis缓存异常的问题这篇文章将为大家详细讲解有关如何解决Redis缓存异常的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。缓存雪崩缓存雪崩是指缓存同一时间大面积的失

    攻略 2021年12月17日
  • 如何使用GraphPad绘制箱线图

    技术如何使用GraphPad绘制箱线图本篇文章为大家展示了如何使用GraphPad绘制箱线图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 首先是GraphPad软件的安装 i

    攻略 2021年10月28日
  • 什么是Redis Cluster

    技术什么是Redis Cluster本篇内容介绍了“什么是Redis Cluster”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年11月4日