mysql 5.1简体中文手册 第16章:编写自定义存储引擎

mysql 5.1简体中文手册 第16章:编写自定义存储引擎

ID:18137674

大小:90.50 KB

页数:37页

时间:2018-09-14

mysql 5.1简体中文手册 第16章:编写自定义存储引擎_第1页
mysql 5.1简体中文手册 第16章:编写自定义存储引擎_第2页
mysql 5.1简体中文手册 第16章:编写自定义存储引擎_第3页
mysql 5.1简体中文手册 第16章:编写自定义存储引擎_第4页
mysql 5.1简体中文手册 第16章:编写自定义存储引擎_第5页
资源描述:

《mysql 5.1简体中文手册 第16章:编写自定义存储引擎》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MySQL5.1简体中文手册第16章:编写自定义存储引擎第16章:编写自定义存储引擎目录16.1.前言16.2.概述16.3.创建存储引擎源文件16.4.创建handlerton16.5.对处理程序进行实例化处理16.6.定义表扩展16.7.创建表16.8.打开表16.9.实施基本的表扫描功能16.9.1.实施store_lock()函数16.9.2.实施external_lock()函数16.9.3.实施rnd_init()函数16.9.4.实施info()函数16.9.5.实施extra()函数16.9.6.实施rnd_nex

2、t()函数16.10.关闭表16.11.为存储引擎添加对INSERT的支持16.12.为存储引擎添加对UPDATE的支持16.13.为存储引擎添加对DELETE的支持16.14.API引用16.14.1.bas_ext16.14.2.close16.14.3.create16.14.4.delete_row16.14.5.delete_table16.14.6.external_lock16.14.7.extra16.14.8.info16.14.9.open16.14.10.rnd_init16.14.11.rnd_next16

3、.14.12.store_lock16.14.13.update_row16.14.14.write_row16.1.前言对于MySQL5.1,MySQLAB公司引入了插件式存储引擎体系结构,这样,就能创建新的存储引擎,并将它们添加到正在运行的MySQL服务器上,而不必重新编译服务器本身。该体系结构简化了新存储引擎的开发和部署。本章的意图是作为指南,用于帮助你为新的插件式存储引擎体系结构开发存储引擎。关于MySQL插件式存储引擎体系结构的更多信息,请参见第14章:插件式存储引擎体系结构。16.2.概述MySQL服务器采用了模块化风

4、格。图16.1:MySQL体系结构存储引擎负责管理数据存储,以及MySQL的索引管理。通过定义的API,MySQL服务器能够与存储引擎进行通信。每个存储引擎均是1个继承类,每个类实例作为处理程序而被引用。针对需要与特殊表一起工作的每个线程,处理程序是在1个处理程序的基础上实例化的。例如,如果3个连接全都在相同的表上工作,需要创建3个处理程序实例。一旦创建了处理程序实例,MySQL服务器将向处理程序发送命令,以便执行数据存储和检索任务,如打开表、操纵行和管理索引等。能够以累进方式创建定制存储引擎:开发人员能够以只读存储引擎启动,随后

5、添加对INSERT、UPDATE和DELETE操作的支持,甚至能够增加对索引功能、事务和其他高级操作的支持。16.3.创建存储引擎源文件实施新存储引擎的最简单方法是,通过拷贝和更改EXAMPLE存储引擎开始。在MySQL5.1源码树的sql/examples/目录下可找到文件ha_example.cc和ha_example.h。关于如何获得5.1源码树的说明,请参见2.8.3节,“从开发源码树安装”。复制文件时,将名称从ha_example.cc和ha_example.h更改为与存储引擎相适应的名称,如ha_foo.cc和ha_f

6、oo.h。拷贝并重命名了这些文件后,必须更换所有的EXAMPLE示例,以及具有存储引擎名称的示例。如果你熟悉sed,也能自动完成这些步骤:seds/EXAMPLE/FOO/gha_example.h

7、seds/example/foo/gha_foo.hseds/EXAMPLE/FOO/gha_example.cc

8、seds/example/foo/gha_foo.cc16.4.创建handlertonhandlerton(“单个处理程序”的简称)定义了存储引擎,并包含指向函数的函数指针,它以整体方式作用在引擎上,而函数工作在单独的

9、处理程序实例中。在这类函数的一些示例中,包含用于处理注释和回滚的事务函数。下面给出了一个来自EXAMPLE存储引擎的示例:handlertonexample_hton={"EXAMPLE",SHOW_OPTION_YES,"Examplestorageengine",DB_TYPE_EXAMPLE_DB,NULL,/*Initialize*/0,/*slot*/0,/*savepointsize.*/NULL,/*close_connection*/NULL,/*savepoint*/NULL,/*rollbacktosavepo

10、int*/NULL,/*releasesavepoint*/NULL,/*commit*/NULL,/*rollback*/NULL,/*prepare*/NULL,/*recover*/NULL,/*commit_by_xid*/NULL,/*r

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。