正文
公司做了十年的数据库产品,客户分布在国内很多地方,每次出差去执行数据库运维任务都得跑很多路,要去客户机房现场调试。
其实我对数据库并不怎么感兴趣,公司数据库使用 Java 写的,我对 Java 也不感兴趣,从三年前跟朋友学习了一段时间 python,自从学习了点 python 之后, 我就不喜欢 Java 了,被 python 的简洁折服了,觉得 Java 是上一辈人用的开发语言,不适合我。两年前由于项目对性能的要求,python 这门语言开发效率高,但性能不高,我转而将重心迁移到了 Golang。积累了多年的开发语言学习经验,到了今天,觉得语言本身不是很重要了,于是抛开对开发语言的成见,我又回到了数据库,公司的老本行。
其实数据库一点都不 low,反而是个高富帅,尤其是关系型数据库。现在的数据库分为关系型数据库、NoSQL、NewSQL。权威的数据库排行网站的排行里,前四名都是关系型数据库,第五名才是文档型数据库 MongoDB,后面才有 Redis。
因为工作的需要,我回到了数据库老本行。因为学习的需要,我做了数据库的调研,发现这个老本行很高大上,我很欣慰,现在开始感兴趣了,只要学习的东西很牛,我就很开心,最讨厌的就是去学习一个陈年的旧技术,而且还濒临着随时淘汰的警戒线。我现在要学习的关系型数据库不一样,虽然也是个老家伙,但是不会淘汰!我学习了这门技术,还能用很多年。
数据管理系统(DataBase-Management System,DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称作数据库(database),DBMS 的主要目标是要提供一种可以方便、高效地存取数据库信息的途径。
这三年多虽然没系统学习数据,但是做的每个项目都离不开数据库,所以还是用过很多很多次的,这次学习的目标不再是用数据库了,而是开发数据库。公司数据库的引擎核心代码,暂时不会涉及,重心主要是开发数据库外围应用,比如数据库驱动(例如 Java 的 JDBC,我准备做的是 Golang 的驱动 database/sql),还有数据库管理工具(公司原来的数据库管理工具,我觉得该淘汰了,我不想去在老代码上改,而是想做一个自己的开源的数据库管理工具)。