从开发角度看数据库到现在浮躁的心态

时间:2022-03-01 01:27:08

    我在给一位原来做开发的朋友演示一个场景的时候,他非常仔细的发现了我讲的过程中一个细节。他问到说建立一个组合索引(复合索引),两个先后关系谁先谁后是不一样的吗?能意识到这一点我觉得很不错。但凡做过数据库优化的人都知道这是有差别的,而在开发视角上绝大部分不知道。这也很正常,在国内大部分公司来说,开发对此知之甚少。

   在Oracle MySQL PG以及一些国产数据库的群内,大家不管对数据库有什么分歧,在开发这里高度一致。就是开发几乎没有数据库的基础。昨天和一些原互联网大厂的朋友吃饭,,我说大厂好点吧?他说大厂也一样。听到这里我心里平衡多了。

   继续第一个组合索引前后的问题,我问在开发团队一般怎么办?他说就是单列,谁如果去建立一个组合的,而且最后居然(请注意这里这个副词,能用上简直是撞上大运或者烧了高香了)能用上,大家就会觉得这个人好厉害。哎说到这里不仅仅为咱们普遍的技术能力叹息。就这我们国内还200多家国产数据库呢。开发国产的开发是不是都知道各种事务隔离级别与之对应的锁的情况?不知道的话你怎么做下去?

   还要不少开发甚至自己进行数据库选型,这就更加的不靠谱了。甚至觉得数据库不够架构凑。一个数据库不行多来几个,一下子PPT就好看了。大多数领导也不懂技术,只是不知道这些领导看不看成本吧。本来一个A数据库解决了,结果要改成3-5个B数据库。这里我本身没有指明说AB谁好谁不好。数据库只要用好了(业务场景和数据库适配都可以)都好,如果不适配,比如用MySQL做ERP就不明智。但是不能说MySQL不好。某个场景大量使用位图索引的,,MySQL没有位图索引,那就不适配。所以要使用数量来解决问题,不一定能解决。

   不少时候不是数量就一定能替代质量的。有人开玩笑说,人逼急了什么事情的做的出来?  那你把这道数学题给我做了。 这种场景下不是多来几差不多水平的人就能解决高难度的问题。现在还是不计成本的浮躁心态太多。

   我本身很反感不解决本质问题,就是让架构去缓解矛盾,不断包容。这种都是问题。从前我听一个朋友说有个公司,就是全表查,但是呢就是不改。最后大量分库分表。数据库是白嫖不花钱,但是数据库服务器都是花钱的,希望他们看账单时候也能从容淡定。(当然这看是花的是公司的钱还是自己个人的腰包,我要是创业公司老板看到这种直接就开骂)。

    有些领导非常厉害,经常拷问:我的用户量是多少,我们的CPU是多少?用户量和CPU的比是不是合理?

  一般来说IT部门都是成本部门,要为公司节约成本。不能浪费公司的钱。其实回答这种用户量和CPU的比,我有个类比方法。就是对比腾讯,这样的数据大家都相信。现在几乎每个人都有微信。我们估计10亿人使用微信是一定有的。如果用户和CPU是1比1,那么腾讯仅仅在微信上就要10亿个CPU,这还不算荣耀等。显然腾讯的技术开发和运维部门不会做的这么差。我仅仅是打比方。如果是用户和CPU是10比1,那么就要1亿个CPU。如果一台服务器10个CPU,这里说的都是虚拟机的CPU不是物理CPU。以此类推吧。想想会有1000万台吗(仅微信)?

   现在不少公司,甚至国内大部分中小企业的信息化,其实单机就够。但是一定要拆,又是一个朋友说,不拆不搞微服务我们招不到人。言下之意是不来点虚的,别人看不上,觉得学习不到什么,或者说人家将来换公司,这里没什么好写的。其实这就是风气,(不正之风呀)上周一篇中台骗局的文章就获得了10万多的阅读,我估计就是太多人意识到了,虚到一定程度泡沫破灭了,要不然不会这样的。

   学习*思想和*理论的课程时候,看到实事求是就选,这是考点。实事求是说起来容易做起来太难了。可能是实事求是没有卖点,不过做技术的还是别追求这个。我再次说一个朋友告诉我的故事,一个开源软件的问题,我们国内的几十号人干了几个月没解决。然后有个外国的专家(其实是一个小伙子),来了一看。干了几天解决了。最终的问题还是要靠务实来解决的。

    全文写的有点杂,请包涵一下。