- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
海量数据:可配置的分库分表22
海量数据:可配置的分库分表
2.12.1 背景
为了应对产品海量⽤户的愿景需求,这⾥将设计⼀个分布式的数据库存储 案,以便
能满⾜数据量的骤增、云服务的横向扩展、后台接⼜开发的兼容性,以及数据迁移等
问题,避免⽇后因为全部数据都存放在单台服务器上的限制。
2.12.2 主要思想
1、分库分表
2、路由规则
3、扩展字段
4 、可配置
5、SQL语句⾃动⽣成
(1)分库分表
是指将不需要进⾏必要关联查询的表分开存放,如存放事件推送的weili_event_pushto
和存放标签的weili_tag ;同时,对于 同⼀个表,因为存放的数据量是可预见式的暴
增,如上述的weili_event_pushto ,每时每刻都会产⽣⼤量的来⾃⽤户发布的事件,因
此为了突破 MySQL单表的限制以及其他问题,需要将此表同时创建N份。
(2)路由规则
在上⾯进⾏了分库分表后,开发⼈员在读取时,就需要根据相应的规则找到对应 的数
据库和数据库表,这⾥建议每个表都需要有int(11)类型的id字段,以便作为分表的参
考。
(3)扩展字段
在完成了分库分表和制定路由规则后,考虑到⽇后有数据库的D 变更,为减少D 变
更对现有数据库表的影响,这⾥建议每个表都增加text类型的extra_data字段,并且使
⽤j son格式进⾏转换存储。
(4)可配置
在有了N 台数据库服务器以及每个表都拆分成M张表后,为减少后台接⼜开发⼈员的
压⼒,有必须在后台接⼜框架提供可配置 的⽀持。即:数据库的变更不应影响开发⼈
员现有的开发,也不需要开发⼈员作出代码层⾯的改动,只需要稍微配置⼀下即可。
关于这块,请见下⾯的框架实现部 分。
(5)SQL语句⾃动⽣
对于相同表的建表语句,可以通过脚本来⾃动⽣成,然后直接导⼊数据即可。
2.12.3 PhalApi框架的实现⽅案
PhalApi框架主要需要实现的是路由这⼀层的映射,并且通过可配置的 式进⾏控制,
同时还应⽀持⽣产环境和测试环境的异同,如在测试环境我们明显不需要1000张数据
库的表。为此,需要提供⼀种 表名 + id 映射到 数据库服务器 + 具体哪张表 的规则。
如上图所⽰,表名会统⼀加上前缀,并且将id按⼀定的表总数进⾏取模,最后再根据
得到的具体表名,通过映射表查找到对应 的数据库服务器进⾏操作。其中,model层
为开发实现,数据库表的映射由接⼜框架实现⽀持。
2.12.4 使⽤⽰例
(1)配置数据库的路由配置
修改./Config/dbs.php⽂件,以下是参考的⽰例配置。其中servers为D 服务器,包括数
据库的账号信息等,tables为数据库表的映射关系,其中default下标为缺省的数据库路
由。
在每个数据库表⾥⾯,可以配置多个数据库表,通过开始的下标start和结束的下标end
来对表进⾏分布式存放,并且如果没有start和end的,则视为不需要拆分存放,同时也
是当找不到合适时的拆分表时所采⽤的默认配置。
return array(
/**
* avaiable db servers
*/
servers = array(
db_demo = array(
host = localhost, //数据库域名
name = test, //数据库名字
user = root, //数据库⽤户名
password = 123 56, //数据库密码
port = 3306, //数据库端⼝
),
),
/**
* custom table map
*/
tables = array(
__default__ = array(
prefix = tbl_,
key = id,
您可能关注的文档
- 浙江省渔业互保协会情况介绍14.ppt
- 浙江省校讯通分析14.ppt
- 浙江省绍兴一中2013届高三高考模拟英语试卷29.doc
- 浙江省第九届初中生自然科学竞赛初赛试题卷及答案14.doc
- 浙江省第五届初中物理竞赛试题卷14.doc
- 浙江著名品牌一览表14.doc
- 浙江行知补校2012-2013第一学期月考高三化学试题2.doc
- 浙江股权交易中心介绍(股交中心提供)14.ppt
- 浦东新区小学英语第一学期三年级M4单元测试卷及答案(供参考)29.doc
- 浣溪沙·一曲新词酒一杯22.ppt
- 专题01 图形的相似(五大类型)(题型专练)(解析版).docx
- 备考2025年中考生物三年真题分类汇编(全国通用)专题07生物圈中的人(原卷版+解析).docx
- 备考2025年中考生物三年真题分类汇编(全国通用)专题13健康地生活(原卷版+解析).docx
- 备考2025年中考生物三年真题分类汇编(全国通用)专题04生物圈中的绿色植物(原卷版+解析).docx
- 译林版(三起)英语六年级上册Unit-3-Holiday-fun-Revision-课件.pptx
- 用坐标表示平移课件-人教版数学七年级下册.pptx
- 简单随机抽样高一下学期数学人教A版(2019)必修第二册.pptx
- 第五章+人体内废物的排出课件-2024-2025学年人教版生物七年级下册.pptx
- 用坐标表示地理位置课件人教版七年级数学下册.pptx
- 简单随机抽样+第2课时高一下学期数学人教A版(2019)必修第二册.pptx
文档评论(0)