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)

相关推荐

  • apr是几月,APR办理护照的时候指的什么

    技术apr是几月,APR办理护照的时候指的什么护照有效期上的APR指的是4月份的意思,10 apr 63应该是“10 apr 13”即到期时间是2013年4月10日apr是几月。1、外交护照和公务护照有效期最长不超过5年

    生活 2021年10月26日
  • orz什么意思,最近流行的ORZ是什么意思

    技术orz什么意思,最近流行的ORZ是什么意思“囧”又称“失意体前屈”,最初的使用灵感源自日本的网络象形文字(或心情图示)“orz”,2004年之后逐渐在内地orz什么意思、香港与台湾等地流行,在网络文化中,“囧”的内小

    生活 2021年10月24日
  • thinkphp api开发教程(thinkphp怎么设置api)

    技术ThinkPHP如何搭建API服务这篇文章将为大家详细讲解有关ThinkPHP如何搭建API服务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 下载ComposerCompose

    攻略 2021年12月20日
  • mssql邮件无法初始化(winxp命令启动sql)

    技术当MSSQL无法调用Xp_CmdShell时该怎么办这期内容当中小编将会给大家带来有关当MSSQL无法调用Xp_CmdShell时该怎么办,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收

    攻略 2021年12月14日
  • 3v,3V的电压对人体安全么

    技术3v,3V的电压对人体安全么人们通常把电击电流分为感知电流3v、反应电流、摆脱电流和心室纤颤电流等 经验证明,通过人体的电流不超过10 mA,触电人可以摆脱电源,不会造成事故;通过人体的电流超过10 mA时,人就有生

    生活 2021年10月24日
  • pulsar消息可靠性(pulsar原理)

    技术Pulsar的特性与优势有哪些这篇文章主要介绍“Pulsar的特性与优势有哪些”,在日常操作中,相信很多人在Pulsar的特性与优势有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年12月15日