Go语言实现数据库系统:前言

2023-12-27 22:30:06

前言

你好,我是醉墨居士,最近想做一些存储方面的东西玩玩,我第一时间就想到了能不能自己开发一个数据库系统

我找了些资料,准备使用Go语言开发一个数据库系统,想着有想法咱就要去实现,万一成功了呢,没有梦想的话,那和咸鱼有什么区别

一起来和我玩数据库吧🫠

计划

我准备先从一个B+树开始做起,然后实现键值对存储,最后逐步完成一个关系型数据库

持久

避免数据丢失和损坏,能够从崩溃中恢复

一个简单的步骤是

1.将更新后的整个数据写入到新文件中
2.使用fsync将新文件的数据刷到磁盘中
3.新文件重命名覆盖旧文件,该步是原子操作

这个流程只适合于数据量比较小的情况下,无法完成数据的增量更新

索引

高效的查询和操作数据,使用B树

在数据库中有两类查询操作,一种是分析查询(OLAP)和事务查询(OLTP)
分析查询一般会涉及到大量的数据,比如聚合,分组或连接操作
事务查询一般只会查询少量的索引数据,索引查询,索引范围查询

并发

处理并发的数据库请求

并发的读操作,不能去写入数据
单一的写操作,不能去读取数据

总结

我们目前只是简单的聊一下数据库相关的内容,未来会更加深入的展开讲解,请不要错过,我是醉墨居士,我们下篇博客再见😉

文章来源:https://blog.csdn.net/qq_67733273/article/details/135256051
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。