MYDB——一个简易的数据库实现完整教程

距离上一次放的预告,已经过去一个月了。

MYDB: 一个简单的数据库实现 预告

教程大概写了十一章,从 0 章到 10 章。按照模块划分,详细(比较详细)地讲解了每一个模块的实现思路和实现细节。跟着教程,从零开始写一遍,大概需要一个月左右吧,可能还可以更快一点。

教程放在了我的博客:mydb

或者也可以看 CSDN 版本的,https://blog.csdn.net/qq_40856284/category_11504274.html

推荐优先看博客版吧,内容会有一些不同,以及一些后续的勘误和新增的内容,都只会在博客上进行了。

项目的 Github 地址为:https://github.com/CN-GuoZiyang/MYDB

最后粘一遍项目介绍:

MYDB 是一个 Java 实现的简单的数据库,部分原理参照自 MySQL、PostgreSQL 和 SQLite。实现了以下功能:

  • 数据的可靠性和数据恢复
  • 两段锁协议(2PL)实现可串行化调度
  • MVCC
  • 两种事务隔离级别(读提交和可重复读)
  • 死锁处理
  • 简单的表和字段管理
  • 简陋的 SQL 解析(因为懒得写词法分析和自动机,就弄得比较简陋)
  • 基于 socket 的 server 和 client
#校招##春招##秋招##项目#
全部评论
1 回复 分享
发布于 2021-12-28 12:09
rpc,db,spring,jvm都有了,下一个来个自己写个编程语言吧
7 回复 分享
发布于 2021-12-29 11:48
我的为啥一直发行版本21,我的明明是11
点赞 回复 分享
发布于 03-14 17:07 湖南
博客不能看了啊
点赞 回复 分享
发布于 2022-08-23 17:13 浙江
你好,请问秋招准备这个项目够了吗
点赞 回复 分享
发布于 2022-05-05 15:09
博客好卡,感觉动效太多了
点赞 回复 分享
发布于 2022-01-29 15:28
大佬研究生复试学哪个项目比较好点
点赞 回复 分享
发布于 2022-01-11 22:59
勇敢🐮🐮,不怕困难! 元旦就做这个
点赞 回复 分享
发布于 2021-12-28 21:19
请问一下博客是不是访问不了呀?
点赞 回复 分享
发布于 2021-12-28 19:12
声哥yyds
点赞 回复 分享
发布于 2021-12-28 16:13
😁帮顶,感谢生哥分享
点赞 回复 分享
发布于 2021-12-27 14:40
来学习了
点赞 回复 分享
发布于 2021-12-27 09:21
23届烂大街项目预定
点赞 回复 分享
发布于 2021-12-26 22:30
点赞 回复 分享
发布于 2021-12-26 18:45
点赞 回复 分享
发布于 2021-12-26 17:03
点赞 回复 分享
发布于 2021-12-26 15:17
nbnb
点赞 回复 分享
发布于 2021-12-26 15:15
第一
点赞 回复 分享
发布于 2021-12-26 14:41

相关推荐

4.23  1h1, 自我介绍2, 项目拷打2.1, 简历里写的Mysql查询优化是怎么做的?(答: 主要是为部分字段添加了索引)2.2, 如果某一个字段的可选值很少, 比如性别中的男和女, 有没有必要加索引?(答: 一般不需要)2.3, 你想一下有没有需要的情况?2.4, Mysql怎么优化多表联查?2.5, 你对项目里的随机森林模型了解多少?2.6, 决策树是不是越深越好?2.7, 如何对决策树进行调优?2.8, 你觉得随机森林的缺点是什么?2.9, 你对项目里的Hadoop架构了解多少?2.10, 如果有一个大文件要存储在Hadoop中, 会有哪些步骤?八股3, 除了Redis, 还有哪些实现分布式锁的方式?(答: Zookeeper)4, 你对Zookeeper了解多少?5, Redis集群是如何进行主从同步的?6, 如果Redis集群发生了火灾等事故, 有没有办法恢复其中的数据?7, 如果Redis的一个节点挂了, 怎么让系统继续运行?8, 如果Redis中的数据过期了, 怎么恢复数据?9, 线程池有哪些核心的参数?10, 如果让你确定线程池的参数, 你会怎么设计?11, 提交一个任务到线程池的流程是什么?12, 如果一个任务到线程池之后, 核心线程未满, 并且有几个核心线程处于空闲状态, 任务是直接交给这几个核心线程处理还是新建立核心线程处理?13, 你用过哪些线程池?14, 你对垃圾回收机制了解吗?15, 老年代和新生代的区别是什么?16, 创建一个string对象会被存放在哪里?17, 如果string对象前面加了关键字static, 会被存放在哪里?18, 如果用循环创建了很多个string, 字符串常量池中会存入几个string?19, 怎么理解Spring的IOC?20, Spring用了哪些设计模式?21, Bean加载的顺序可以改变吗?编程题用两个线程交错打印从1到m*n的数字, 每个线程每次打印n个数字(寄)总结找实习以来被拷打的最狠的一次, 八股问的很有深度, 编程题猝不及防。
查看30道真题和解析
点赞 评论 收藏
分享
评论
33
155
分享

创作者周榜

更多
牛客网
牛客企业服务