admin管理员组

文章数量:1438293

鸿门宴讲PostgreSQL

最近有点忙,被一个老师联系,说周日紧急救场。说是有一个大央企要做一节PostgreSQL的课,PPT都写好了,就让我去讲一讲就可以了。我这人好面子,紧急救场去吧,也没想太多。

从此有意思的故事就开始了,因为要伪装成这家委托我企业的员工,资深的DBA专家。我想到的有三点:

1 不能丢脸

2 不能丢脸

3 不能丢脸

我这人好面子呀,我拿过来那个PPT,我一看,我了个去,这写的,然后我连夜把这个PPT的一些错误给弄出来,改了,然后准备材料,准备虚拟练习机。然后说是一家大央企,咱们得不能丢脸,拿好准备好的资料,哐哐的捯饬,然后就坐上高铁,转了2趟地铁,然后又走了半个小时,终于到了那个“大央企”。

这央企就是规矩大,进门的通报,的提前报备,拿着身份证刷过闸机,进去了,里面那个大呀!!问门口的保安,说XXX 楼您知道在哪里,人家回复,往里走有儿门牌,看门牌儿。得了您,保安都这么牛气,咱们往里走。

那建筑盖的,没有几十个亿下不来,迷迷瞪瞪的还是找不到地方,然后就联系上本次的“主”,真是央企做派,“你往前面走,进门我出来给你刷脸,你才能进”。 终于进到了大门,等着吧。一会儿主家出来了,进门我以为就10多个人听听,好嘛。60多口子,线上线下的。

开发,架构,运维,领导做了一屋子。我在哪,我是谁,我稍微问了一下,咱们这今天的侧重点是什么,我可以倾向性的讲。然后我就了解,我左手边的是开发部门,右面是运维,中间是架构和大领导。

咱们啥阵仗没见过,我怕你。摆好架势,我就用我平时对学生的态度来“奔放式”。

“来同志们,非常荣幸占用大家宝贵的休息时间来给大家讲一讲PostgreSQL的优化问题,大家有什么问题可以立即来问,咱们让大家付出的时间有所收获。”

然后我就和脱缰的野马,从POSTGRESQL的历史+特性+优化方案+场景,有趣的故事案例,这PPT与我的讲的距离是越来越远,我偷摸看底下那些人的表情,从一开始的“请来的什么人呀” 到现在“可算来了个明白人了”。(因为PPT他们是审过的,可能并没有报太大的希望,哪里知道来了一个“有意思的”)

我边讲,边想这堆人为嘛他们都坐一块了,我特别想知道,然后我就开始我最喜欢的环节,搞明白这群人的关系,我就说这块是咱们运维同学需要注意,平时要针对一些特殊的表XXXXX,马上我就看一个姐姐,非常愤怒的说,这和我们有什么关系,这都是开发的工作,他们应该干。

然后我左面的开发(应该是一个开发的领导),这为什么是我们的活,这不应该是运维应该负责的吗?

然后他们齐刷刷的看我,想让我给评评理。咱们这老油子, 我给你评理,呵呵,我可是会给你们和稀泥,这个POSTGRESQL 的优化和大家的努力是分不开的,开发在处理一些语句的时候应该注意XXXXXXX, 运维同学可以辅助,帮助开发同学,终究咱们运维的同学才是专业且可靠的,咱们应该针对一些表定期的做XXXXXXX,调整一些参数,比如并发的XXXXX。我相信如果咱们把这些工作都做好了,POSTGRESQL的性能不会太差。

说完了,有意思的地方开始了,架构师说了,我们从ORACLE迁移过来的,然后这语句到了 POSTGRESQL 有不少都特别的慢,我们应该从架构方面做一些什么事情。

我又和架构师分析了,POSTGRESQL的特点,与ORACLE 的不同,分区表的差异,以及通过业务架构的重塑来去彻底的解决他提出的一些基于更换数据库后产生的问题。

比如我们为什么非要用分区表,在我们了解到POSTGRESQL分区表的性能差异后,我们是否可以开发出一个符合我们业务的中间件,中间件应该做成什么样子,通过逻辑分表的方案来避免大量使用POSTGRESQL分区表,没有分区键的问题? 同时提高了架构在整体系统稳定性尤其是数据库切换过程中的作用。

刚把这边压下来,那边数仓的姐姐就提问了,说为什么POSTGRESQL的性能忽高忽低,不稳定。我又给这边的姐姐解释了POSTGRESQL的MVCC的原理,以及为什么会在某些时刻性能会有波动的问题,又询问了运维平时是否对表特殊的表进行vacuum的特殊处理和调整参数以及之间的中庸调整的道理。在他们这边正琢磨自己平时可能没有做到这些事情,想着自己在哪里有不对,然后互相开始指责产生小团体争论的时候。

我就看着领导的的脸从原来的严肃,到现在眉眼舒展,甚至给我拿了瓶水,看来这课是的目的达到了,我成功的让,架构,开发,运维,开始了互相批评,与自我批评。成功重现了央企的价值观,制造矛盾,领导拍板的方式在课上重现了。

不过失误的是,我当时太嗨了,说了点国产数据库的事情,好嘛,撞枪口上了,原来这家大央企正要换国产数据库,正选型呢,下课了,领导就不放我了,问了这个国产数据库怎么样,问了那个数据库怎么样,我一听就听出音来了,哦原来是想用那个数据库,就那个鬼东西你也真敢用。

但咱们也不知道里面的内幕,我就顺势的分析了他们的问题,建议了2个国产数据库产品,正说着呢,人家旁边架构师说,对你说的那个国产我们POC了,还真是不错。但这边的大领导不依不饶,问了我三遍那个XXX怎么样,咱们不是不懂事的人,我又夸了一遍他说的那个产品,最后我又给出当前如果想在POSTGRESQL 上平移的另一个国产数据库产品,建议他们试试,也把一些国产数据库常见的POC的 “手段”和他们说了说,怎么破解那些假的POC。

等坐上地铁,我就想着今天让我来啥意思,原来该来正主没来,然后这么多部门一起来,一开始一个个的都和面对阶级敌人一样,好嘛,我这是来了鸿门宴呀!正主别是不敢来吧,这里面哪里有善茬,从数据库问到开发,从开发问到架构,你们是真够可以的,如果是该来的原主,不知道要如何应对这堆people !

结论:下次的长点心眼,幸亏讲了8年,脸皮厚了,经历的多了,我怕你们这帮“小可爱”,幸亏懂点开发,架构师的思路,幸亏我接触的业务种类多,干过的企业类型多,要不今天我就得架在火上烤了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-23,如有侵权请联系 cloudcommunity@tencent 删除架构开发数据库postgresql运维

本文标签: 鸿门宴讲PostgreSQL