- 22
- 0
- 约 27页
- 2016-12-31 发布于北京
- 举报
数据库分库分表
基本思想
Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个服务器上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(server)上。根据实际情况做出选择,也可能会综合使用垂直与水平切分。
垂直切分
数据的垂直切分,也可以称之为纵向切分。将数据库想象成为由很多个一大块一大块的“数据块”(表)组成,我们垂直的将这些数据块切开,然后将他们分散到多台数据库主机上面,这样的切分方法就是一个垂直(纵向)的数据切分。
系统功能可以基本分为以下四个功能模块:用户、群组消息、相册以及事件,分别对应为如下这些表:
用户模块表 user、user_profile、user_group、user_photo_album
群组讨论表 groups、group_message、group_message_content、top_message
相册相关表 photo、photo_album、photo_album_relation、photo_comment
事件信息表 event
模块之间的关系:
群组讨论模块和用户模块之间主要存在通过用户或者是群组关
原创力文档

文档评论(0)