基于传统数据库的大型系统构建


基于传统数据库的大型系统构建 student.csdn.net 太阳塔科技创始人:赵振平 邮箱:taryartar@gmail.com 赵振平个人简介 student.csdn.net • 赵振平(英文名:Zero) • 曾就职于摩托罗拉(Motorola),IBM等跨国企业。 • 2003年,获得Oracle公司的OCP认证(Oracle 8i)。 • 13年数据库从业经验,最早管理过Oracle 8,一直战斗在数据库管理的第一线,积累 了丰富的经验。 • 电子工业出版社签约作者。出版了2本数据库专著。 个人成就 student.csdn.net • 2013年,《Oracle数据库精简与疑难解析》(第二版)发行,并成为国内最贵的 计算机图书。 • 2012年,荣获“电子工业出版社30周年优秀作者” • 2011年,数据库技术大会(DTCC)特邀嘉宾 • 2010年,独立出版《成功之路:Oracle 11g学习笔记》一书 • 2010年,荣获“电子工业出版社2009年度优秀作者” • 2009年,荣获“2008年度IT业十大原创作者”称号 • 2008年,《Oracle数据库精简与疑难解析》成为年度数据库畅销书 • 2008年,独立出版《Oracle数据库精简与疑难解析》一书 作品 student.csdn.net 基于传统数据库的大型系统构建 student.csdn.net 什么是传统数据库?? student.csdn.net 什么是传统数据库?? student.csdn.net 什么是传统数据库?? student.csdn.net 什么是传统数据库?? student.csdn.net 关系数据库的实质 student.csdn.net 何为大型系统 student.csdn.net • 大数据量 • 高并发 何为大型系统 student.csdn.net • 1byte=8bite • 1 KB = 1024 bytes • 1 MB = 1024 KB • 1 GB = 1024 MB • 1 TB = 1024 GB • 1 PB = 1024 TB 大型系统构建方法 student.csdn.net Oracle代表的一个时代 student.csdn.net • 高硬件 • 高软件 • 人才高地 MySQL代表的一个时代 student.csdn.net • 互联网的兴起 • 高并发 • 海量数据 基于传统数据库的大型系统构建 student.csdn.net 软件生命周期(SDLC)的定义 student.csdn.net 软件生命周期(SDLC,Systems Development Life Cycle ,SDLC)是软件的产生直到报废的生命周期,周期内有问题 定义、可行性分析、总体描述、系统设计、编码、调试和测试、 验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方 法是软件工程中的一种思想原则,即按部就班、逐步推进,每个 阶段都要有定义、工作、审查、形成文档以供交流或备查,以提 高软件的质量。 软件生命周期 student.csdn.net 软件生命周期 student.csdn.net 软件生命周期 student.csdn.net 软件生命周期 student.csdn.net 开发阶段 student.csdn.net 软件设计 数据库设计 数据库设计(数据建模) student.csdn.net 数据库设计(数据建模) student.csdn.net E-R图 (Entity–relationship) E-R图 (Entity–relationship) 实体属性实体属性 表表 数据库范式(Normal Form) 客观世界的抽象 关联特定的数据库 数据建模的成果 student.csdn.net 软件生命周期 student.csdn.net 软件生命周期 student.csdn.net 软件生命周期 student.csdn.net 衡量项目质量的标准 student.csdn.net • 功能实现 • 可靠性 • 性能 • 可扩展性 • 可维护性 • 可重用性 • 健壮性 • 安全性 • 可用性和互操作性 大型系统已经建成 student.csdn.net 数据库服务器 中间件 WEB服务器 客户端 大型系统的两个指标 student.csdn.net • 高并发 • 大容量 数据库服务器的改造 student.csdn.net 数据库服务器 台式机 数据库服务器的改造 student.csdn.net 台式机 刀片式服务器 刀片服务器DELL PowerEdge M910 student.csdn.net 数据库服务器的改造 student.csdn.net 小型机 刀片式服务器 SPARC T42-2 student.csdn.net 存储的局限 student.csdn.net 服务器的内置硬盘已经不能够 满足业务增长需 存储扩展 student.csdn.net 数据库服务器 盘 交机 SUN STORAGE 2500-M2 ARRAY student.csdn.net 增 student.csdn.net 盘(存数据) 交机 小型机1(1) 小型机2(2) student.csdn.net 的 student.csdn.net ORACLE(RAC) student.csdn.net student.csdn.net 这的系统有问题? student.csdn.net 盘(存数据) 交机 小型机1(1) 小型机2(2) RAC存的问题 student.csdn.net 互联网的兴起 student.csdn.net 大的数据量 大的并发性 互联网的兴起 student.csdn.net 果是用ORACLE,世 界??? 互联网的兴起 student.csdn.net MySQL时代的到 互联网的兴起 student.csdn.net 何构建MySQL的大型系统 构建MySQL的大型系统 student.csdn.net 构建的思想是:分(sharding) Oracle大型系统的 student.csdn.net 垂直拆分(Vertical shard ) • 一个业务对应 一台数据库 • 其实,这就是垂 直拆分 (Vertical Shard ) DB set1 业务一 业务二 业务三 DB1 DB2 DB3 一套数据库的组成(业务拆分) 垂直拆分(Vertical shard ) 1. 垂直拆分也叫行拆分(Row Splitting), 其实就是把组成一行的多个列分开,放到 不同的表中,这些表具有不同的结构 2. 拆分后的每个表中含有更少的列 3. 垂直拆分就是列的重新分布 4. 垂直拆分其实就是“业务拆分” 性能设计 垂直拆分(Vertical shard ) column3 column4 column5column1 column2 column8column7column6 column3column1 column2 column8column7column6column4 column5 ………… ……......…………………… …………..………….………… ……….… A表 B表 C表 column3column1 column2 column8column7column6column4 column5 A表 B表 C表 业务一 业务 业务 垂直拆分(Vertical shard ) 1. 一个业务对应一台数 据库 2. 其实,这就是垂直拆 分(Vertical shard ) DB set1 业务一 业务 业务 DB1 DB2 DB3 性能设计 垂直拆分完成以后形成的架构 当“业务二”成为了焦点和热点 DB set1 业务 db2 性能设计 用户增到300 能100用户 当“业务二”成为了焦点和热点 性能设计 一个字“拆” 拆 “业务二”数据库的拆分 1. 每一块的结构完全相同 2. 每一块的表结构和原来的“ 业务二”数据库的表结构完 全相同 3. 唯一不同的是,每一块中存 放不同用户的数据 4. 每一块在结构上其实就是原 来数据库的克隆(clone) 5. 每一块其实就是一个完整的 数据库db2 业务 12 用户分布的变化 25 25 db2 业务 12 “业务二”数据库的拆分 db21 db22 db23 12 性能设计 用户分布的变化 db2 db21 db22 db23 业务 300 100 100 100 水平拆分(Horizontal shard ) 水平拆分(Horizontal shard) 1. 水平拆分其实就是把一个表分 成几个表,这些表具有相同的 列,但是存放更少的数据 2. 其原理是根据现有的表克隆出 新的表,这些表存放不同的数 据而已 性能设计 水平拆分的例子 表S 水平拆分的例子 性能设计 1. 表S被拆分成三个表 2. 这些表具有相同的结构 3. 只是这三个表存放不同的数据 水平拆分完成后 “业务二”数据库的拆分 db21 db22 db23 db2 业务 12 水平拆分--块的说明 1.通常一“块”就是一个 “schema” 2.在Mysql中,一个schema就是 一个数据库(database) 3.一“块”也叫一个“Shard” 性能设计 表S 表k表m 一个块包括多个表 水平拆分--块的说明 性能设计 db21 db22 db23 db2 业务 300 表S 表k 表 m 每个schema下的表结构与拆分前的数据库的表结构完全相同 “业务二”数据库的拆分 “业务二”数据库被水平拆成3个数据库 db21 db22 db23 分的程 student.csdn.net DB set1 DB1 DB2 DB3 一套数据库的组成(业务拆分) db21 db22 db23 db21 DB set1 DB1 DB3 直分 平分 能300用户 student.csdn.net 用户增长, 么??? 用户增长—一个DB set student.csdn.net db21 db22 db23 db21 DB set1 DB set2 db21 300 300 用户增长—一个DB set student.csdn.net db21 db22 db23 db21 DB set1 DB set2 DB set3 db21 db21 300 300 300 中 student.csdn.net db21 db22 db23 db21 DB set1 DB set2 DB set3 db21 db21 中数据库 300 300 300 无限扩展 分数据的方法 中 大 按照国家进行划分 海 按照城市进行划分 性能设计 按照数据中心(DC)进行划分 中 student.csdn.net db21 db22 db23 db21 DB set1 DB set2 DB set3 db21 db21 中数据库 太阳塔科技,拥抱大数据时代的来临! student.csdn.net
还剩89页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

672381992

贡献于2014-08-30

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf