Skip to content

ns7381/MyDatabase

Repository files navigation

MyDatabase

Forked from shardingsphere-workshop

项目说明

  1. 项目结构:

execute-engine:  执行引擎,负责sql的执行计划
mysql-protocol:  mysql通信协议api
mysql-proxy:  mysql基于netty实现mysql代理,负责与mysql client交互
sharding-parser:  sql语法解析
storage-engine-api:  存储引擎接口层
storage-engine-bplus:  基于B+树索引实现的存储引擎
storage-engine-lsm:  基于lsm原理实现的存储引擎

  1. 启动类:

mysql-proxy模块shardingsphere.workshop.mysql.proxy.Bootstrap

  1. 操作示例:
mysql -uroot -proot
CREATE TABLE IF NOT EXISTS t_order(id INT UNSIGNED AUTO_INCREMENT,name VARCHAR(100) NOT NULL, creator VARCHAR(40) NOT NULL, PRIMARY KEY ( id ));

INSERT INTO t_order ( id, name, creator ) VALUES ( 1, 'n1', 'c1' );
INSERT INTO t_order ( id, name, creator ) VALUES ( 2, 'n2’, 'c2’ );
INSERT INTO t_order ( id, name, creator ) VALUES ( 3, 'n3’, 'c3’ );

select * from t_order where id > 1
select * from t_order where id = 1
select * from t_order where id < 3
select id, name from t_order where id = 1
select id, name from t_order where id >1 and id <3;

完成情况

  1. 基本dml、ddl sql解析
  2. 支持创建表、插入、查询等操作
  3. 支持B+树和LSM两种存储引擎

后续计划

  1. 复杂sql支持(join、group by、order by)等
  2. sql执行优化
  3. 并发及事务支持
  4. 分布式数据库支持

About

MyDatabase

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published