技术开发 频道

赵振平:项目成败取决于数据库架构设计

  数据库架构设计路线图

第一驾马车--分布数据
▲数据库架构设计路线图

第一驾马车--分布数据
▲驱动性能的三驾马车

  第一驾马车--分布数据

  分布数据就是根据某些条件把数据分割分布成多块,然后放到不同的物理位置。所谓物理位置是指地理位置,物理主机和物理磁盘。分布数据目前来说是性能优化最有效的方法。分布数据的方法有一下几种:

  1、按照国家进行划分

  2、按照城市进行划分

  3、按照数据中心(DC)进行划分

  4、按照数据集合进行划分

  垂直拆分(Vertical shard )

第一驾马车--分布数据
▲垂直拆分示意图

  垂直拆分也叫行拆分(Row Splitting),其实就是把组成一行的多个列分开,放到不同的表中,这些表具有不同的结构,拆分后的每个表中含有更少的列。垂直拆分就是列的重新分布。垂直拆分其实就是“业务拆分”。

第一驾马车--分布数据
▲垂直拆分示意图

  垂直拆分完成以后形成的架构:1、一个业务对应一台数据库;2、其实,这就是垂直拆分(Vertical shard )。

第一驾马车--分布数据
垂直拆分完成以后形成的架构

  当“业务二”成为了焦点和热点,就必须对数据库进行水平拆分,什么是水平拆分?水平拆分其实就是把一个表分成几个表,这些表具有相同的列,但是存放更少的数据。其原理是根据现有的表克隆出新的表,这些表存放不同的数据而已。其具有以下特点:

  1、每一块的结构完全相同

  2、每一块的表结构和原来的“业务二”数据库的表结构完全相同

  3、唯一不同的是,每一块中存放不同用户的数据

  4、每一块在结构上其实就是原来数据库的克隆(clone)

  5、每一块其实就是一个完整的数据库

  假设经过一段时间的发展后,业务二业绩突出,目前的数据库无法满足业务二的需求,又需要对业务二数据库进行拆分。

第一驾马车--分布数据
▲“业务二”数据库的拆分

第一驾马车--分布数据
▲用户分布的变化

第一驾马车--分布数据
“业务二”数据库的拆分

第一驾马车--分布数据
拆分之后用户的变化

    其实以上就是水平拆分(Horizontal shard )。所谓水平拆分其实就是把一个表分成几个表,这些表具有相同的列,但是存放更少的数据。其原理是根据现有的表克隆出新的表,这些表存放不同的数据而已。水平拆分完成后,表S被拆分成三个表,这些表具有相同的结构。只是这三个表存放不同的数据。
 

0
相关文章