有些时候,我突然想知道MySQL的如何存储数据的.她是如何完整的获取某行的数据,并且获得每个字段的值.
比如,我们现在有一张表,如下图
上图是在MySQL中创建的一张表,现在我们要模仿MySQL,写一个简单的数据库系统。
当然我们只是实现了最简单的功能,数据写入,读取。
具体的代码如下:
首先我们按照song表中定义的字段创建一个数据结构
2.有了数据格式,那么下一步就是数据的序列化和反序列化
第一步我们进行序列化操作,把数据写入到文件中,
3.写入之后,就是读取该文件,即是反序列化
4.调用Song序列化和反序列化方法,创建和读取我们自己的数据文件
这里演示了如何像MySQL一样存取每行的数据文件,当然这是最基本的数据存储原理,知道这些原理,我们可以尝试创造自己的数据库系统。
我想起了一位同事说过的话,当你知道怎么做的时候,就会感叹原来这么简单。多动手,多动脑,是个好习惯,爱好golang,docker,平时喜欢分享一些自己的感悟,有问题大家一起交流。
项目源码在:http://git.oschina.net/weizheng2015/go-binary