传统对于渣男的认知中,有一个共识就是,两只脚不知道放到哪里,反正是不老实,属于贬义词,与忠贞的爱情是对立的。
而做数据库也能做出渣男,而且我就属于那种“数据库渣男”(数据库渣男名词解释:对一种数据库不忠贞,天天吃着锅里的,眼里看着别的盆),那么数据库有好男人吗? 有,数据库上的忠贞“爱情” 源自与上世纪,上世纪对于数据库的掌握大部分都是掌握一种即可,并且大部分都是ORACLE ,当时一库定乾坤,ORACLE的DBA 是瞧不起其他的DBA 如SQL SERVER, MYSQL 等,认为都是不入流的存在,当时有ORACLE ACE ,你听说过 SQL SERVER ACE .
上世纪对于数据库的状态就是掌握一种数据库就OK了,本世纪随着各种数据库功能越来越完善,并且项目的复杂度和需求越来越多,不在有一个数据库就可以掌握一个大型项目的可能,而之前一些不认为是数据库的产品也成为了数据库产品。如 REDIS ,MONGODB, ES 等数据库,当然传统数据库里面不在是ORACLE 一个数据库当道的时代,MYSQL ,PG ,等开源数据库越来越强。
导致数据库行业的“渣男”,越来越多,可上世纪的风气并未完全消失,一种数据库要压倒另一种数据库的氛围还在持续发酵。
那么玩数据库,是当“忠贞烈女”,还是当个“渣男”, 我选择了后者,原因三,
1 上世纪只专注于ORACLE 的某些人,在本世纪已吃到苦头,不转变不改变,只能等待淘汰的命运,这些人可以说是某种数据库的忠贞烈女。
2 职业发展,懂得一种产品的在当下成为专家或者更上层的决策者的可能越来越低,在你只能出一种解决方案的时候,或者一个解决方案都出不来的时候,其他人已经可以给出N 种解决方案。
3 应对不同的客户和商业需求,如同你感冒如果只吃XX霉素,在一段时间有效,但另一段时间就失效了,那么手里,各种抗生素都拥有,来什么病毒就拿出对应的抗生素予以对抗。
上面说了当“忠贞烈女” 的种种问题,下面就说说当个“数据库渣男” 的好处。
首先这里有三个观点
1 选择正确的工具,比在工具里面选择正确的功能要更快速,更准确,的解决问题.
2 熟悉更多的数据库产品,有助你通过其他的数据库的方案,对应到你当前数据库,扩展你的解决方案。
3 更多的数据库产品,丰富你网状思维的模式,减少你钻牛角尖的程度,站的更高,才能看的更远。
下面详细的解释一下上面的三个观点
1 如果你需要临时存储数据,并且这些数据使用的时间很短,可能在写入的几百毫秒就失效了,此时你想到的是,忠贞的使用ORACLE 去解决问题,还是轻易的就拿出 REDIS 作为一个解决方案。
当然ORACLE 如果解决这个问题,也有可能,但耗费的时间和经历的成本对比你使用REDIS 的成本一定是高的,所以与其在一个数据库上,耗费经历找方案,不如扩展你的数据库掌握的LIST ,在正确的工具箱里面找到对应的工具。
2 熟悉更多的数据库产品有助于更多的方案产生,假如我在MONGODB 的工作中知道单机使用MONGODB 并在项目中的数据可以接受部分数据因为CRASH丢失,但需要提高性能作为重点的时候,我将 jouranl LOG 停掉,提高性能,而转换到POSTGRESQL 的层面上,我会问,POSTGRESQL 是否可以这样做,是的POSTGRESQL 是在单机的模式下可以单机的模式下,对某一个表停止 WAL 日志的写入,使用UNLOG TABLE, 也能大限度的提高这个表的写入的性能,但如果我是一个ORACLE 的DBA,打死我也不会有这样的奇思妙想,在一个数据库上,没有这个思维,或知识,我也不会问这个问题,我就认为ORACLE 中某些既定,连多问几个可能性的能力都丧失了。
3 更多的数据库产品的知识,让你懂得数据库设计的思路是什么,实际上数据库产品很多,但思路不多,ORACLE ,PG ,SQL SERVER ,MYSQL 在某些方面是雷同的,那么只需要,去掌握他们不同的设计思维模式,就可以快速掌握这些数据库的特点。
举例
1 我从SQL SERVER 商业数据库中的多核心和并发中强悍的能力中,得到并发太高,锁力度太细,其实也不是一个提高数据库的性能的最好的方案,因为在并发和锁力度上,SQL SERVER 算是这些数据库上的天花板了(自带锁粒度升级的机制,谁有站出来),然后SQLSERVER 从这里也并未获得,相较于其他三个数据库更突出的计算能力,说明了什么。
此时我就会更客观的看到MYSQL 的单线程,多核心并发的能力,我知道可以提高性能,但我没有惊讶到,两个嘴合不上得地步,因为我知道天花板又如何。
同时我看到POSTGRESQL 的物化视图, 我也会感叹,其他数据库中只有ORACLE 具有的物化视图,而POSTGRESQL 有对应的方案,此时我就不会苛刻的要求POSTGRESQL 的物化视图的功能和 ORACLE 要一模一样,终究连SQL SERVER 这样的商业数据库,还用某些索引去模拟物化视图,对比开源POSTGRESQL 我还要什么“自行车”。
在接触了 TIDB 后我有了一种一个数据库可以 OLAP OLTP 的联合部署和连通工作的设计思路,果不其然,POLARDB FOR MYSQL 得产品名录也设计了两种数据库于引擎,来OLAP OLTP 通吃。 我的项目数据库的解决方案又多了一个可选性。
结语:在演艺界,黄渤可以说是情商高的代表,他曾经说过一句话,放到数据库界,也是一个高情商的表现, 他曾经说过
这个时代不会阻止你自己闪耀,但你也覆盖不了任何人的光辉 。
所以,数据库行业,我坚定的选择 ,当一个“渣男”, 只要是好的,我都爱,都学学。