7.1.3 讨论

引入数据库中间层将后端分库分表对应用透明化在大型互联网公司内部很常见。这种做法实现简单,对应用友好,但也面临一些问题:

●数据库复制:MySQL主备之间只支持异步复制,而且主库压力较大时可能产生很大的延迟,因此,主备切换可能会丢失最后一部分更新事务,这时往往需要人工介入。

●扩容问题:如果系统压力过大需要增加新的机器,这个过程涉及数据重新划分,整个过程比较复杂,且容易出错。

●动态数据迁移问题:如果某个数据库组压力过大,需要将其中部分数据迁移出去,迁移过程需要总控节点整体协调,以及数据库节点的配合。这个过程很难做到自动化。