关于数据库的使用,在京东有几个趋势,早期主要用 SQL Server 及 Oracle 也有少量采用 MySQL,考虑到业务发展技术积累及使用成本等因素,很多业务都开始使用 MySQL,包括早期使用 SQL Server 及 Oracle 的很多核心业务也都渐渐开始迁移到 MySQL,单机 MySQL 往往无法支撑这类业务,需要考虑分布式解决方案,另外原本使用 MySQL 的业务随着数据量及访问量的增加也会遇到瓶颈,最终考虑采用分布式解决方案,整个京东随着业务发展采用数据库的趋势如图1所示。
图1 业务使用数据库演变趋势
分布式数据库解决方案有很多种,在各个互联网公司也是非常普遍,本质上就是将数据拆开存储在多个节点上从而缓解单节点的压力,业务层面也可以根据业务特点自行进行拆分,如图2所示,假设有一张 user 表,以 ID 为拆分键,假设拆分成两份,最简单的就是奇数 ID 的数据落到一个存储节点上,偶数 ID 的数据落到另外一个存储节点上,实际部署示意图如图3所示。