godb
本项目中,数据库就是本地一个文件夹,表也是数据库下的目录,里面的数据就是表文件夹下的文件,
表目录下的scheme.json保存着表结构
表目录下data0.json data1.json分别存储着数据,每个文件里的数据不超过1000行。
设计逻辑
- 代码分为client端和server端
- server端开启端口,接收指令,并执行指令
- client端连接端口,发送指令
- server端分层执行
- 解析语句,判断类型,建库、建表、插入数据等等
- 不同类型语句进入不同service执行,互不干扰
- 验证语句,返回数据
建库
暂时建表只支持这种格式,实际实现是在项目tmp目录下新建一个db1的文件夹
1 | create database db1 |
建表
暂时只支持 ‘id’ 列名, varchar(255) 类型长度,以及默认值
以及主键
实际实现是在数据库目录下新建一个表名的文件夹,并有一个scheme.json文件记录各列属性
1 | create table table1 (`id` varchar(255) DEFAULT NULL, |
插入数据
支持语句格式,value 只支持一个括号,values支持多个括号多行数据插入
实际实现是在表文件夹下,新建data(i).json文件,里面存储具体数据,i是预留数据量大的情况下的分文件存储,每个文件暂时最多支持存储1000行。
1 | INSERT INTO feature_conf values(1) |
// TODO
- [ ] 增加索引文件,指向data(i).json并指明多少列
- [ ] 索引文件分层,类似B+树存储