您的位置:首页 > 其它

编写自定义存储引擎1

2013-03-20 12:40 225 查看


第16章:编写自定义存储引擎

目录

16.1.
前言
16.2.
概述
16.3.
创建存储引擎源文件
16.4.
创建handlerton
16.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_next()函数

16.10.
关闭表
16.11.
为存储引擎添加对INSERT的支持
16.12.
为存储引擎添加对UPDATE的支持
16.13.
为存储引擎添加对DELETE的支持
16.14.
API引用

16.14.1.
bas_ext
16.14.2.
close
16.14.3.
create
16.14.4.
delete_row
16.14.5.
delete_table
16.14.6.
external_lock
16.14.7.
extra
16.14.8.
info
16.14.9.
open
16.14.10.
rnd_init
16.14.11.
rnd_next
16.14.12.
store_lock
16.14.13.
update_row
16.14.14.
write_row


16.1. 前言

对于MySQL
5.1,MySQL
AB公司引入了插件式存储引擎体系结构,这样,就能创建新的存储引擎,并将它们添加到正在运行的MySQL服务器上,而不必重新编译服务器本身。

该体系结构简化了新存储引擎的开发和部署。

本章的意图是作为指南,用于帮助你为新的插件式存储引擎体系结构开发存储引擎。
关于MySQL插件式存储引擎体系结构的更多信息,请参见第14章:插件式存储引擎体系结构


16.2. 概述

MySQL服务器采用了模块化风格。

图16.1:MySQL体系结构



存储引擎负责管理数据存储,以及MySQL的索引管理。通过定义的API,MySQL服务器能够与存储引擎进行通信。

每个存储引擎均是1个继承类,每个类实例作为处理程序而被引用

针对需要与特殊表一起工作的每个线程,处理程序是在1个处理程序的基础上实例化的。例如,如果3个连接全都在相同的表上工作,需要创建3个处理程序实例。

一旦创建了处理程序实例,MySQL服务器将向处理程序发送命令,以便执行数据存储和检索任务,如打开表、操纵行和管理索引等。

能够以累进方式创建定制存储引擎:开发人员能够以只读存储引擎启动,随后添加对INSERT、UPDATE和DELETE操作的支持,甚至能够增加对索引功能、事务和其他高级操作的支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: