在MySQL中,存储引擎负责数据存储和索引管理。MySQL通过定义的API与存储引擎交互。
每个存储引擎是一个类,这个类的每一个实例与MySQL服务器通过一个特别的handler接口交互。
在每一个线程上,每一个特定的表都有一个handler与之共同工作。例如:如果有3个链接都在同一个表上工作,需要创建3个handler实例。
一旦创建了handler实例,MySQL服务器发送命令到handler上来执行数据存储和检索认为,像打开表、操作行和管理索引。
可以以一种渐进的方式来定制存储引擎:开发者可以从一个只读的存储引擎开始,然后添加对INSERT、UPDATE和DELETE操作的支持,而后再添加对索引、事务和其它高级操作的支持。
实现一个新存储引擎的最容易的方式是从复制修改EXAMPLE存储引擎开始。ha_example.cc和ha_example.h可以在storage/example源代码路径中找到。