V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gfwuzer
V2EX  ›  程序员

我在写一本书:《从零开始手搓数据库(Go)》

  •  
  •   gfwuzer · 1 天前 · 2431 次点击

    还没有完成。大家可以看看,应该能看懂吧?

    https://systems-programming.org/database_zh/

    35 条回复    2025-11-08 10:09:10 +08:00
    YanSeven
        1
    YanSeven  
       1 天前
    有参考 TiKV 吗
    YanSeven
        2
    YanSeven  
       1 天前
    @YanSeven 哦忘了,TiKV 不是 go 写的
    JimLee0921
        3
    JimLee0921  
       1 天前
    好叼,等我 Go 入门完必须得支持一波

    另外哥们儿能给点建议吗?就是目前自己跟着 GPT+GitHub 已经把基础语法什么都学完了,这两天上班是在偷偷学那些重要的官方库和跟着那个 geektutu 看他那个啥高性能编程,准备学完再跟着他弄他那个什么七天 gin 框架。。但是整体方向还是挺乱的。。
    lingrongyan
        4
    lingrongyan  
       1 天前
    围观下,虽然不懂,但从零开始打动我了
    gongym
        5
    gongym  
       1 天前
    我能分享下自己写的数据库吗,也是从头编写的

    https://github.com/ggymm/db
    javalaw2010
        6
    javalaw2010  
       1 天前
    🐂🍺,写好了踢我一下,出实体书的话我一定买一本拜读。
    gfwuzer
        7
    gfwuzer  
    OP
       1 天前
    @JimLee0921 根据本人经验,入门后最要紧的是动手积累经验,然后是学习基础知识。这 2 个方向在时间上最有性价比。
    craftsmanship
        8
    craftsmanship  
       1 天前 via Android
    @gfwuzer 基础知识指的什么呢
    back0893
        9
    back0893  
       1 天前
    让我想起 lua 的 go 实现 手措解析
    craftsmanship
        10
    craftsmanship  
       1 天前 via Android
    @gfwuzer 懂了 链接里提到的底层原理哈
    gfwuzer
        11
    gfwuzer  
    OP
       1 天前
    @javalaw2010 不介意英文的话,可以看这个 https://build-your-own.org/#section-database
    JimLee0921
        12
    JimLee0921  
       1 天前
    @gfwuzer #7 学到了学到了,谢谢
    AutumnVerse
        13
    AutumnVerse  
       1 天前 via iPhone
    数据库这种要求高实时性的业务,就不应该选带 gc 的编程语言,最新选 rust ,不追新选 c c++

    选 go 注定只能是玩具
    nbhaohao
        14
    nbhaohao  
       1 天前
    看上去不错, 谢谢分享.
    gfwuzer
        15
    gfwuzer  
    OP
       1 天前
    @AutumnVerse 你说的对。C/C++ 确实不可不学习。大家可以看看这个手搓 Redis 的教程,比数据库简单些。https://build-your-own.org/redis/
    hugodotlau
        16
    hugodotlau  
       1 天前
    万物皆可搓系列
    cc11
        17
    cc11  
       1 天前
    看上去不错, 谢谢分享.
    dishonest
        18
    dishonest  
       1 天前
    @AutumnVerse 玩具也很有价值,娱乐价值、教育价值。go 的好处就是语法糖少,适合看清思路。

    我记得以前有本叫`Writing An Interpreter In Go`, 我当时特别喜欢这本书,因为相比那些大块头,它是真的“从零开始”。
    lysShub
        19
    lysShub  
       1 天前
    @AutumnVerse 不少日志数据库都是 go 写的
    Chrisz2zz
        20
    Chrisz2zz  
       1 天前
    支持!
    258
        21
    258  
       1 天前
    这个网站的样式挺好看的
    runningman
        22
    runningman  
       1 天前
    放个微信或者群么
    encounter2017
        23
    encounter2017  
       1 天前
    我来,10 行内手搓数据库( bash )

    #!/bin/bash

    db_set () {
    echo "$1, $2" >> database
    }

    db_get () {
    grep "^$1," database | sed -e "s/^$1,//" | tail -n 1
    }
    dog82
        24
    dog82  
       1 天前
    TiDB 好像是用 Go 写的,楼主可以去应聘
    dog82
        25
    dog82  
       1 天前
    再好奇问一下:sql 语言解析到底层数据存储结构,要有编译原理的知识积累才行,感觉非常复杂,OP 怎么解决的?
    dddddds
        26
    dddddds  
       1 天前
    我用 rust 写了一个,只不过是付费的,介意勿点 https://roseduan.cn/course/zh/blog/2-sql/
    yuananf
        27
    yuananf  
       1 天前
    @dog82 sql 解析到语法树应该还好,tidb 的语法解析还可以 https://github.com/pingcap/tidb/tree/master/pkg/parser
    jmliubiao
        28
    jmliubiao  
       1 天前
    支持
    l1ch40
        29
    l1ch40  
       1 天前
    可以哇,支持楼主
    kevinpendragon
        30
    kevinpendragon  
       1 天前
    可以,感觉写的挺通俗
    gfwuzer
        31
    gfwuzer  
    OP
       23 小时 50 分钟前
    @dog82 你可以看看相关章节,自己动手实践。parser 并没有那么复杂,也不需要那些编译原理的理论。实践有时比理论简单。
    abolast
        32
    abolast  
       23 小时 7 分钟前
    到时候会上架微信读书么?期待
    fpure
        33
    fpure  
       21 小时 56 分钟前
    有关于执行计划优化的内容吗
    lvlongxiang199
        34
    lvlongxiang199  
       17 小时 15 分钟前
    建议改名为 CRUD 程序员视角下的 db (非贬义)

    存储+事务的确是重点, 但优化器, 执行器也是重点. 真要正经学下 db 的话, 可以直接上 cmu15445

    parser 那边没必要手写, 可以直接用 yacc/ANTLR
    Dganzh
        35
    Dganzh  
       4 小时 43 分钟前
    写完再看
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2711 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 321ms · UTC 06:52 · PVG 14:52 · LAX 22:52 · JFK 01:52
    ♥ Do have faith in what you're doing.