database no sharding

来源:这里教程网 时间:2026-03-01 16:15:25 作者:

自己原文公众号: https://mp.weixin.qq.com/s/jitiNxCazDUKTacRFrPreA

不止一次看到简历上写着从事过XX项目,分库分表。但凡这样写的有以下几种可能:

1、胡说八道的

2、看别人有抄的

3、简单做过(反而最有问题,才多少数据量就分库分表?可见没有优化能力)

4、真正场景需要(这种人应该在国内TOP20的公司不会找我面试)

    随便国内找一个ACE级别的(无论是Oracle MySQL还是PG的)都不会一上来就劝人家分库分表。专家都知道1000万以下,甚至1亿以下都不叫事。

     我记得好几年以前接到过一个电话,对方说在招人,我说我不换工作。对方说可以谈谈技术嘛?我说随便说两句可以。对方说如果1000万的大表查询很慢怎么办?

     我心中基本猜出大概了,这家公司能力不行啊。区区1000万就慢,往后日子别过了。我大概给他们说了一下,应该如何如何。对方一听就说,你就是我们要的人,来吧。我说不去。这家公司叫善林金融。听过的朋友举个手。

     我是因为后来这家公司出事了才听过的。原来是业务和技术都有问题。

     以前在DTCC有人就在会场问,如果一个表1000万查询很慢怎么办?嘉宾一般回答都会这样说:“不会的,去看看一定是索引没建好。”

    分库分表问题太多了。弊大于利。

    1、按照一个维度分了,那么只要不是按照这个维度的查询,必然跨库。

    2、需要一个中间件知道怎么分的,当然没有太好的中间件,有时候开发自己在程序中判断(自己挖坑自己埋)

    3、不是一个库一致性没有保障(备份恢复一片和其他所有片对得上吗?)

    4、不是一个库排序没有保障

    5、不是一个库锁没有保障

    

呼兰在程序员吐槽大会上说:产品经理举个手,相当于问不懂技术的举个手。

同样一上来就说分库分表的相当于说,我不打算用索引了,我就打算要用机器抗

相关推荐