Si架构设计与实现(数据库水平拆分)
在现今互联网行业的浪潮下,涌现了大量的互联网公司,大量的创业公司以及很多成熟的公司,如阿里巴巴、京东、美团、饿了么等等. 那么对于一个成熟的互联网项目,其内部的数据库结构也是非常复杂的, 并且会存在非常庞大的海量数据, 所以很多成熟的项目都会面临一个问题,就是随着数据库中数据的不断增加, 当内部数据达到了一个量级了以后, 数据库性能会产生直线的下降, 产生的后果就是项目的运行效率低下,用户的体验度严重下降,影响到项目的可持续运营. 虽然会有很多公司直接采用数据库运营商(如Oracle、IBM等)的整套服务策略来解决这个问题,但是这些策略都是需要互联网公司去支付相对等的报酬的.这样的话,对公司又会产生项目持续运营的额外开销. 那么很多公司就想,能不能有一个介于两者之间的解决方案呢? 答案肯定是有的, 那就是对数据库拆分. 数据库拆分总共有两种, 一种是垂直拆分, 一种是水平拆分. 今天咱们说的就是其中一种方案: 水平拆分.
在现今互联网行业的浪潮下,涌现了大量的互联网公司,大量的创业公司以及很多成熟的公司,如阿里巴巴、京东、美团、饿了么等等. 那么对于一个成熟的互联网项目,其内部的数据库结构也是非常复杂的, 并且会存在非常庞大的海量数据, 所以很多成熟的项目都会面临一个问题,就是随着数据库中数据的不断增加, 当内部数据达到了一个量级了以后, 数据库性能会产生直线的下降, 产生的后果就是项目的运行效率低下,用户的体验度严重下降,影响到项目的可持续运营. 虽然会有很多公司直接采用数据库运营商(如Oracle、IBM等)的整套服务策略来解决这个问题,但是这些策略都是需要互联网公司去支付相对等的报酬的.这样的话,对公司又会产生项目持续运营的额外开销. 那么很多公司就想,能不能有一个介于两者之间的解决方案呢? 答案肯定是有的, 那就是对数据库拆分. 数据库拆分总共有两种, 一种是垂直拆分, 一种是水平拆分. 今天咱们说的就是其中一种方案: 水平拆分.
水平拆分的由来, 就要从阿里说起了, 众所周知, 现今的电商行业,基本可以说是以阿里为龙头老大,当然京东也不差(此处不做两家公司的评价,都是电商行业的带头大哥).阿里早期也面临如上所说的问题, 因为随着项目的运营,数据库的逻辑关系以及内部数据都不断变的复杂与庞大. 那么阿里首先采用的解决方案是直接使用Oracle数据库. 当然Oracle的性能是大家公认的, 但是问题是花钱. 那么后期阿里就提出了一个内部优化方案就是: 去I,去E,去O. 这里所说的O, 就是Oracle. 思想就是要采用Mysql集群来替换掉Oracle. 如下图所示:

本文探讨了阿里早期面对数据库复杂性和庞大规模时的解决方案,从使用Oracle转向MySQL集群的策略。通过水平拆分,将不同字段的数据分散到多个数据库中,利用路由算法(F算法)确定数据存储位置,从而优化数据库架构。
最低0.47元/天 解锁文章
1801

被折叠的 条评论
为什么被折叠?



