电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据库分库分表(sharding)VIP免费

数据库分库分表(sharding)_第1页
1/27
数据库分库分表(sharding)_第2页
2/27
数据库分库分表(sharding)_第3页
3/27
一 、 基本思想 Sharding 的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个服务器上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按 ID 散列)切分到多个数据库(server)上。根据实际情况做出选择,也可能会综合使用垂直与水平切分。 1、 垂直切分 数据的垂直切分,也可以称之为纵向切分。将数据库想象成为由很多个一大块一大块的“数据块”(表)组成,我们垂直的将这些数据块切开,然后将他们分散到多台数据库主机上面,这样的切分方法就是一个垂直(纵向)的数据切分。 系统功能可以基本分为以下四个功能模块:用户、群组消息、相册以及事件,分别对应为如下这些表: 1. 用 户 模 块 表 user 、 user_profile 、 user_group 、user_photo_album 2. 群组讨论表 groups、group_message 、group_message_content 、top_message 3. 相册相关表 photo、photo_album、photo_album_relation、photo_comment 4. 事 件 信 息 表 event 模 块 之 间 的 关 系 : 1. 群 组 讨 论 模 块 和 用 户 模 块 之 间 主 要 存 在 通 过 用 户 或 者 是 群 组 关 系 来 进 行关 联 。一般关 联 的 时候都会是 通 过 用 户 id 或 者 nick_name 以及 group的 id 来 进 行 关 联 ,,通 过 模 块 之 间 的 接口实现不会带来 太多麻烦。 2. 相册模 块 仅仅与用 户 模 块 存 在 通 过 用 户 的 关 联 。这两个模 块 之 间 的 关 联基本就有通 过 用 户 id 关 联 的 内容,简单清晰,接口明确。 3. 事 件 模 块 与各个模 块 可能都有关 联 ,但是 都只关 注其各个模 块 中对象的信 息 ID,同样可以做到很容易分拆。 所以,我们第一步可以将数据库按照功能模 块 相关 的 表 进 行 一次垂直拆分,每个模 块 涉及的 表 单独到一个数据库中,模 块 与模 块 之 间 的 表 关 联 都在 应用 系统端通 过 接口来 处理。 如下图所示: 通 过 这 样 的 垂 直 切 分 之 后 , 之 前 只 能 通 过 一 个 数 据 库 来 提 供 的 服 务...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据库分库分表(sharding)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部