动手创建自己的存储引擎(〇)
- 2020 年 1 月 4 日
- 筆記
MySQL插件式的存储引擎是其突出的特色之一,像InnoBD/MyISAM之类的存储引擎都是插件式的存储引擎。为了适应各种不同的需求,我们自己也可以动手创建自己的存储引擎。这听起来比较困难,但实际上要创建一个可用的存储引擎并不是特别难,要创建一个像InnoDB这样的支持完整事务特性的存储引擎才是特别难。
一般而言,要创建一个可用的存储引擎应该分以下几个步骤:
1. 初始化存储引擎
这一步是相对来说最简单的一步,因为MySQL已经为我们创建了一个简单可操作的模板(example引擎)。根据这个模板,可以很方便地创建出自定义存储引擎。
我们自定义的存储引擎能够被MySQL正确加载并识别,能够在建表的时候指定存储引擎为自定义的引擎类型,这一步便可以算成功了。
2. 能够支持表的创建
动手创建自己的存储引擎(二)
3. 能够支持表的读写
动手创建自己的存储引擎(三)
4. 能够支持对数据的修改
动手创建自己的存储引擎(四)
5. 能够支持索引功能
动手创建自己的存储引擎(五)
6. 能够支持事务特性
动手创建自己的存储引擎(六)
这几条中,1-4条的实现比较简单,而5-6条的实现则需要花费很多的功夫。本系列文章将基于percona-server-8.0.13-4进行个人存储引擎的开发和调试,不管功能实现如何,能自己创建一个存储引擎确实是一件令人激动的事情。我将该自定义存储引擎命名为“天马(TIANMA)”,出自山海经。寓意该存储引擎可以让大家发挥天马行空的想象力。
未完待续……
参考文献
[1] https://dev.mysql.com/doc/internals/en/custom-engine-source-files.html
[2] MySQL核心内幕. 祝定泽 等. 清华大学出版社