谢邀,重度参与过 OLTP(MySQL) 和 OLAP(ClickHouse) 的内核研发,手写过好几个数据库原型,正好借这个问题谈谈个人的一些感受。
首先可以确定的是:数据库方向是非常有前(钱)途的,是门手艺活,学好可以吃一辈子(还可以传承到下一代)。
CPU/操作系统/数据库三大基础软件中,数据库是个人/小公司最有条件先做起来的。
数据库还有一个重要的地方:非常迷人,一旦入门,一发不可收拾,我是从十多年前一路狂奔到现在,每周都会写上一些内核代码。
另外一个问题是要实现一个 MySQL:如果作为原型练练手是没问题的,如果抱着去实现一个国产化的 MySQL 意义并不是很大。说实话,MySQL 只是一个数据库产品,经历过这么多年的发展和迭代,它不是一个好的工程产品,而且很多地方设计的并不合理。
从技术层面讲,数据库是一个人体工程产品,理论方面短期内很难再有大的突破了,单从索引技术方面,从 B-Tree 到最先进的 Fractal-Tree,其实也就是一个常数项的优化。所以我们要做的就是先把基础打磨好,比如通过实现一个 MySQL 原型来触及: parser -> planner(MySQL 这方面比较弱) --> storage。
Good luck!