想慢慢做个 mini 数据库,选 C++还是 GO?很纠结,希望老哥们给点意见

2019-09-30 16:21:30 +08:00
 yamasa

个人情况

本科四年基本一直用 C++,毕业接近 6 年,主要用 java,对关系型数据库比较感兴趣,用过 mysql 和 sqlserver,捯饬过慢查优化,索引设计和索引原理等,也看过《数据库设计概论》的一部分,但没有深入到源码层级。

短板分析

纠结点

从个人而言,最重要考虑的点依然是加深对操作系统 /网络等基本功的认识。希望有类似经验的老哥们能给点参考意见。目前想法是先做一个比较简陋基本版的,再慢慢添砖加瓦。如果能推荐一些学习 c++或者 go 的 resource 就更好了。

7053 次点击
所在节点    程序员
49 条回复
owenliang
2019-09-30 16:22:37 +08:00
厉害。。。
janxin
2019-09-30 16:30:30 +08:00
最好的语言 Rust 不了解一下?
yamasa
2019-09-30 16:32:37 +08:00
@janxin 对 rust 不甚了解,也是跟底层打交道多吗?
90928yao
2019-09-30 16:36:29 +08:00
go 吧 好多 go 的数据库
liprais
2019-09-30 16:40:31 +08:00
用 java
至少你想抄的时候有的抄
xdeng
2019-09-30 16:40:59 +08:00
c/c++可以做成库给其他语言用,go 目前不行吧。
ipwx
2019-09-30 16:48:02 +08:00
“想做一个 mini DB 的契机很大程度上也是源于希望加深对操作系统各方面的认识”

我觉得不现实,mini 数据库用不着操作系统级别的优化,用了就不可能是 mini 数据库了。
zjsxwc
2019-09-30 16:49:28 +08:00
@xdeng

cgo 早期就是 从 go 编译成 c 语言,然后再用 c 的工具链编译成二进制,虽然现在是直接编译成二进制,
但毫无疑问 go 可以编译成 so 库提供给 c++/c 用
inhzus
2019-09-30 16:51:10 +08:00
这个得看 scale 有多大吧…不过咱也不是很懂
wuzhizhan
2019-09-30 16:51:32 +08:00
java 就可以了,你的 mimi 数据库。。。
yamasa
2019-09-30 16:54:34 +08:00
@ipwx 并不是上来就要优化的意思。诸如操作 page,考虑和设计记录在 hardDisk 内的结构和存储方式(顺序 /链表),还有索引的实现和硬盘存储等,对于我也是比较有意义的。
salamanderMH
2019-09-30 17:02:54 +08:00
C++需要多练习
taogen
2019-09-30 17:19:49 +08:00
老哥,书名写错了。。(尴尬

你都说了是加深对操作系统 /网络等基本功,又不是为了加强某个语言的熟练度,所以选择你最熟悉的语言即可。
catror
2019-09-30 17:23:56 +08:00
这里追求接近底层没啥意义,在你的代码里,和系统底层直接交互也就只有系统调用。这一点上,Go 有对系统调用进行封装,开发体验上和 C++不会有啥区别。
guonaihong
2019-09-30 17:25:25 +08:00
@zjsxwc 兄弟正解,我现在就用 go 代码生成 c 的 ABI 然后给 c++调用。这样开发效率可以。
misaka19000
2019-09-30 17:28:27 +08:00
建议 go,C++我怀疑你有可能写到一半放弃。。。
yamasa
2019-09-30 17:30:52 +08:00
@taogen
@catror
感谢二位的回复,有大体的想法了。
yamasa
2019-09-30 17:32:03 +08:00
@misaka19000 确实。。完全能想象(手动捂脸)
scnace
2019-09-30 17:48:58 +08:00
写新的数据库轮子 不用 Rust ?
xdeng
2019-09-30 17:51:42 +08:00
@zjsxwc win 的 dll 还没支持吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/605714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX