每日一博 | 一次难得的分库分表实践
背景 前不久发过两篇关于分表的文章: 一次分表踩坑实践的探讨 分表后需要注意的二三事 从标题可以看得出来,当时我们只做了分表;还是由于业务发展,截止到现在也做了分库,目前看来都还比较顺利,所以借着脑子还记得清楚来一次复盘。 <!--more--> 先来回顾下整个分库分表的流程如下: 整个过程也很好理解,基本符合大部分公司的一个发展方向。 很少会有业务一开始就会设计为分库分表,虽说这样会减少后续的坑,但部分公司刚开始都是以业务为主。 直到业务发展到单表无法支撑时,自然而然会考虑分表甚至分库的事情。 于是本篇会作一次总结,之前提过的内容可能会再重复一次。 分表 首先讨论下什么样的情况下适合分表? 根据我的经验来看,当某张表的数据量已经达到千万甚至上亿,同时日增数据量在 2% 以上。 当然这些数字并不是绝对的,最重要的还是对这张表的写入和查询都已经影响到正常业务执行,比如查询速度明显下降,数据库整体 IO 居高不下等。 而谈到分表时我们着重讨论的还是水平分表; 也就是将一张大表数据通过某种路由算法将数据尽可能的均匀分配到 N 张小表中。 Range 而分表策略也有好几种,分别适用...
