咋实现一个简单的数据库系统
没实现过,看过丁点MySQL源码。要想实现,首先要有优秀的C/C++功底,其次要对开源数据库的源码了若指掌,然后要对操作系统、网络有很深入的理解,接着还要有较好的英文基础,最后,还要有快速解决问题的能力、坚韧不拔的毅力。MySQL,PostgreSQL,SQLite都是开源的,他们的代码值得一读。
【咋实现一个简单的数据库系统】 其他参考资料:
1. http://t.cn/RzMgx0O
2. http://t.cn/RzMgiWL
Good Luck!
■网友
今天看到的一个C实现的Btree数据库:
How Does a Database Work?
代码量不大,教学性质。
■网友
这里有两个教学项目,都配有相应的教材。http://www.cs.bc.edu/~sciore/simpledb/是java编写的多用户,cs结构。http://pages.cs.wisc.edu/~dbbook/openAccess/Minibase/project.html这个是c实的。
■网友#!/bin/bashdb_set () { echo "$1,$2" \u0026gt;\u0026gt; database}db_get () { grep "^$1," database | sed -e "s/^$1,//" | tail -n 1}
这两个函数实现了键值存储的功能。执行 db_set key value
,会将 键(key)和值(value) 存储在数据库中。键和值(几乎)可以是你喜欢的任何东西,例如,值可以是JSON文档。然后调用 db_get key
,查找与该键关联的最新值并将其返回。
麻雀虽小,五脏俱全:$ db_set 123456 \u0026#39;{"name":"London","attractions":}\u0026#39; $ $ db_set 42 \u0026#39;{"name":"San Francisco","attractions":}\u0026#39;$ db_get 42{"name":"San Francisco","attractions":}
摘自http://shop.oreilly.com/product/0636920032175.do
■网友
从sqlite看下应该会有思路的吧。
引擎层的东西的确比较复杂,特别涉及到sql解析的部分。
下层的索引、硬盘空间管理、缓冲区等,这块的难度应该还好,有一定工作量,但不是特别的困难。
或者考虑下再看看nosql的一些思路,学习下nosql的做法。对比sql和nosql的设计思路和想法
推荐阅读
- 同比■同比增长7.1%!2021年的第一个节你花了多少钱?
- “他是我第一个会说普通话的老师”:一对师生折射青海山村蝶变
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- 有必要重新开个C店吗
- 大学再有三个月就结束了,没学到知识,参加一个软件测试培训机构好吗
- 汽车|长安UNI-K又将开创一个新的"引力"纪元?
- 神话|武汉传奇父亲:一个平行班孩子创造的高考神话(感动上万家长)