nuomiphp
正在加载…
请使用更现代的浏览器并启用 JavaScript 以获得最佳浏览体验。
加载论坛时出错,请强制刷新页面重试。
对数据库感兴趣,但完全接受不了 cpp
tianxiaoxin
可以跟着这个教程学一下,c 比 cpp 简单多了: https://github.com/akerdi/buildyourowndatabase
OliverDD
tianxiaoxin
谢谢回复。我想了解的是主要是 query engine 和 storage manager 两部份,附带一些通用的工具,看了下应该不适用
ipwx
叶公好龙
OliverDD
ipwx
呃,我认识你吗?为啥在我这刷存在感
huangzongzhuan
ipwx
一针见血
lesismal
ipwx
#4 太贴切了
jlkm2010
https://github.com/risingwavelabs/risingwave
misaka9982
MIT 6.5830
OliverDD
misaka9982
非常感谢,我看了下是用 go 做项目的。我了解下。
tool2dx
cpp 是用大量额外的开发时间,换去对细节的掌控。
如果项目周期不紧张,可以多练练,后期积累多了,就很牛逼了。
qingshanyuluo
用的时候问 gpt 不就行了,我现在就一点不怕奇奇怪怪的语法
nebkad
Rust 神教教徒来传教了,不喜请忽略。
我跟你一样,对数据库的查询引擎和存储结合的部分很感兴趣,也觉得 CPP 的心智负担真的太大了,没办法让我在快速试验想法的同时,能够积累一些代码用于下一次的迭代。
如果只是要快速迭代,那可能用脚本语言或者别的灵活性很高的语言是可以的,但问题是这些语言虽然表现力强但是性能真的很成问题,很难用于积累。
所以 Rust 真的很适合,它的类型系统能够帮助你以很正交的方式来描述抽象设计,零成本抽象的设计原则提供了良好的运行时性能。
作为一个曾经的 CPP 程序员,我认为 Rust 真的不需要知道什么奇技淫巧或者 corner case 就能用得很好;当然这对于很多人来说,可能 Rust 的门槛真的很高,因为他们不一定需要这么强力的工具。但以你的目标来看( DBMS 核心组件),Rust 应该是恰当的。
wateryessence
https://github.com/cmu-db/15445-bootcamp
不如趁还在学校的时候先学 c++,早晚也要学的
OliverDD
wateryessence
毕业一年了…学这么心智开销大的东西,我还不感兴趣,这不是什么好主意
redbule
https://cs186berkeley.net/
你需要这个,这是 java 实现的版本。不喜欢 cpp 就先绕过,先直奔目标学会基础
ccsexyz
你以为你喜欢,实际上你不喜欢。所以你需要做的是接受这一点。
OliverDD
ccsexyz
嗯,知道了,去玩吧
fuyufjh
看看大数据,Spark 、Hive 、Trino 这些,语言以 JVM 系的为主,查询路径上的知识差不多太多,存储、事务之类的被大幅简化了
BeiChuanAlex
搞数据库 c++ 是一个永远也绕不过去的坎吧。。。。。。
Kumo31
数据库本身就是一个性能敏感的东西,这里的体现不仅是在整体架构,算法设计上,还包括具体的代码实现细节,比如函数的传参方式,内存的申请时机... 也就是令你深恶痛绝的这些东西,虽然 Rust 能屏蔽了一些繁琐的语法细节,但你依然需要理解这些概念才能写出高性能的代码。
我觉得主要还是看你目的,如果只是想学习数据库,那也有不少 Go 甚至 Java 实现的课程,这些足够你理解数据库的核心概念、设计和机制。但如果想真正地从事数据库 or 其他底层基础设施工作,那 C++ 是绝对绕不过去的门槛。
不过不少分布式数据库的 SQL 层也是用 Go 写的,因为在这里网络通信和查询处理的代价更高,语言本身执行的性能相对没那么重要了,但依然充斥着各种 magic 。
GrayXu
Kumo31
#20 +1 ,感觉 performance 和低心智负担就是个 trade off
ydpro
推荐 2 个课程:
CS186 ,他的实验是基于 Java 的。
清华大学的数据库课程 https://www.bilibili.com/video/BV15u4y1Q71R/?spm_id_from=333.999.0.0&vd_source=b578f404bddc480d71de0ce5866009a9
楼主有空可以看下,我也比较纠结选择哪个课程
longbowape
传统数据库实现可以看《 Database System Implementation 》,《 Designing Data-Intensive Applications 》和实现关系不大,主要讲应用层怎么做技术选型的。
下一页 »