取决于你重新开发一个数据库的目的是什么

关系型、nosql可能会有差别,侧重说关系型吧

1. 为了开源或商用,做一个mysql、pgsql、redis、casandra、mongodb...级别的数据库。

选c++。对数据库来说最重要的事(和编程语言相关):性能、稳定。

c++自己管理内存,不会出现自动gc导致性能峰值波动,而且可以参考开源的数据库设计,可以直接拿c写好的engine参考(copy)。

golang 自动gc(好像可以关掉?)会导致响应无法预测,一个场景:如果第一次查询耗时1s,第二次遇到golang开始自动gc,响应花了3s,对于开发者进行性能优化或应用层用户体验来说都无法接受。

c、c++ 是低中级语言,完全榨干机器的性能,golang主流观点是中级语言(中高级),内置gc注定性能会差于c、c++。

2. 无商业目的,为了创新,希望在gc方面投入较少精力。

选golang,没有c++ 巨多的特性、黑魔法,学习成本较低,可维护性相对c++来说高,不用过多考虑手动gc问题。golang比起来py、java更命令式,你完全可以实践各种算法。

其它

随便选,c++可以去copy开源的算法、设计。golang如果觉得没有参考,可以实现最小可用版,如果有兴趣可以实现一个nginx,想象一下,除了前端,你的负载均衡、定时任务、后台服务、容器、运维工具 全是golang一种语言实现的,强迫症看了直呼内行。