`

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


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

本表目标不会被其它线程共享,也不会关闭,直到线程调用HANDLER...CLOSE或线程中止时为止。

如果您使用一个别名打开表,则使用其它HANDLER语句进一步参阅表是必须使用此别名,而不能使用表名。

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

如果您有一个多列索引,则指定索引列值为一个用逗号隔开的清单。既可以为索引中的所有列指定值,

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

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

HANDLER ... index_name = (col_a_val,col_b_val,col_c_val) ...
HANDLER ... index_name = (col_a_val,col_b_val) ...
HANDLER ... index_name = (col_a_val) ...
第二个HANDLER...READ语法按索引的顺序从表中取出一行。索引的顺序符合WHERE条件。

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

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

MyISAM表数据文件的顺序。本语句也适用于InnoDB表,但是因为没有独立的数据文件,所以没有这类概念。

不使用LIMIT子句时,所有形式的HANDLER...READ语句均只取出一行。 如果要返回多个行,应加入一个LIMIT子句。本语句于

SELECT语句的语法一样。请参见13.2.7节,“SELECT语法”。

HANDLER...CLOSE用于关闭使用HANDLER...OPEN打开的表。

注释:要使用HANDLER接口来查阅一个表的PRIMARY KEY,应使用带引号的识别符`PRIMARY`:

HANDLER tbl_name READ `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接口观看数据更加自然。

添加table索引:
mysql> alter table info add index(age);
Query OK, 0 rows affected (0.11 sec)
Records: 0  Duplicates: 0  Warnings: 0



查看table索引:
mysql> show index from info;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| info  |          1 | age      |            1 | age         | A         |           5 |     NULL | NULL   | YES  | BTREE      |         |               |
| info  |          1 | age_2    |            1 | age         | A         |           5 |     NULL | NULL   | YES  | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec)




create table info:
mysql> handler info read first;
+------+------+
| name | age  |
+------+------+
| lisa | 27   |
+------+------+
1 row in set (0.00 sec)

mysql> handler info read next;
+------+------+
| name | age  |
+------+------+
| tina | 25   |
+------+------+
1 row in set (0.00 sec)

mysql> handler info read age=(25);
+------+------+
| name | age  |
+------+------+
| tina | 25   |
+------+------+
1 row in set (0.00 sec)

mysql> handler info read age=(25) limit 2;
+------+------+
| name | age  |
+------+------+
| tina | 25   |
| do   | 25   |
+------+------+
2 rows in set (0.00 sec)

mysql> handler info read age=(27) limit 3;
+-------+------+
| name  | age  |
+-------+------+
| lisa  | 27   |
| ricky | 27   |
| lover | 27   |
+-------+------+
3 rows in set (0.00 sec)

mysql> handler info close;
Query OK, 0 rows affected (0.00 sec)










分享到:
评论

相关推荐

    如何使用MySql【使用mysql的详细讲解】

    ### 如何使用MySQL:详细教程 ...以上是使用MySQL的基本方法和技术要点,通过这些操作,你可以有效地管理和操作数据库。无论是对于初学者还是有一定经验的开发人员来说,熟练掌握这些基本技能都是非常重要的。

    [MySQL] 存储过程错误异常处理例子

    在MySQL数据库系统中,存储过程是预编译的SQL语句集合,它们可以包含复杂的业务逻辑,提高数据操作的效率并降低网络流量。在编写存储过程时,我们常常需要处理可能出现的各种错误和异常,以确保程序的健壮性和可靠性...

    MySQL运行状态查询与参数说明

    MySQL作为最流行的开源数据库管理系统之一,其性能调优和运行状态监控是数据库管理员(DBA)日常工作中不可或缺的技能。本文档详细介绍了如何查询MySQL运行状态以及解释相关参数,从而帮助DBA更好地维护和优化MySQL...

    MySQL存储过程 ERROR Handler 异常处理.doc

    MySQL存储过程中的ERROR Handler是用于异常处理的关键机制,它允许开发者在遇到错误时进行定制化的响应,而不是让整个过程崩溃。在存储过程中,错误处理通常涉及声明一个或多个HANDLER,这些HANDLER会在特定错误发生...

    老罗android Handler综合练习 图文混排 服务器端源代码

    总结来说,这个压缩包文件提供了一个完整的Android应用开发练习案例,涵盖了Handler的使用、图文混排的实现以及服务器端的JSON、MySQL和JSP技术。对于初学者来说,这是一个很好的实践平台,能够帮助他们深入理解...

    MySQL定义异常和异常处理详解

    然而,MySQL目前不支持此操作。 异常处理的语法如下: ```sql DECLARE handler_type HANDLER FOR condition_value [,...] sp_statement ``` 其中,`handler_type`是处理方式,`condition_value`是异常类型,...

    mysql无限级别树形菜单操作(附加JSP新闻发布系统)

    这个案例中的"mysql无限级别树形菜单操作"展示了如何利用存储过程来实现这一功能,特别是在一个新闻发布系统中,这样的数据结构非常常见,用于构建层次分明的新闻分类。 首先,我们要理解无限级别树形菜单的数据...

    MySQL 5.1中文手冊

    2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装...

    MYSQL神秘的HANDLER命令与实现方法

    对于InnoDB存储引擎,入口函数如 `ha_innobase::init_table_handle_for_HANDLER` 和 `ha_partition::init_table_handle_for_HANDLER()` 支持对分区表的HANDLER操作。 总的来说,MySQL的HANDLER命令是一个独特的功能...

    mysql官方中文参考手册

    2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装...

    MySQL Proxy 说明与配置

    首先,你需要从MySQL官网下载对应操作系统的MySQL Proxy二进制包,然后解压并进行安装。安装过程通常包括设置环境变量、创建数据目录以及启动服务。 配置MySQL Proxy主要涉及到两个文件:`proxy.lua`和`log.lua`。`...

    handler socket erlang client

    handlersocket是基于mysql的nosql解决方案,与普通的...性能相比于mysql的批量操作方式,具有5倍左右的提升(我测试的,可能是内存设置的不多)。 详细内容见此链接 https://sourceforge.net/projects/erlanghandlerso/

    MySQL 5.1官方简体中文参考手册

    2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装...

    mysql5.1中文手册

    MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在...

    MySQL存储过程的异常处理方法

    在MySQL中,存储过程是一种预编译的SQL代码集合,它可以执行复杂的操作并提供更好的性能。在编写存储过程时,异常处理是确保程序稳定性和健壮性的重要环节。本实例展示了如何在MySQL存储过程中实现异常处理,以捕获...

    MySQL 5.1参考手册

    2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装...

    MySQL异常处理浅析

    在MySQL中,异常处理通常通过DECLARE语句定义处理器,并结合HANDLER关键字来处理特定的错误情况。 1. **DECLARE声明与HANDLER**: DECLARE语句用于在存储程序(如存储过程或函数)中声明变量和处理器。HANDLER语句...

    MySQL 5.1参考手册 (中文版)

    2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装...

    MySQL 5.1参考手册中文版

    2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上...

Global site tag (gtag.js) - Google Analytics