zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

浅谈数据库的分割技术[转载]

数据库技术 转载 浅谈 分割
2023-09-14 08:58:20 时间

浅谈数据库的分割技术 
                                                                                          电信信息化部/周陈雄
关健词    读写分离分布,垂直分割,水平分割,虚拟化存储,wEB 缓存分割, 存储 CACHE 缓存分割


随着社会的日益进步, 各行业的运营支撑系统都面临着越来越大的压力, 承受着业务数 据量、访问并发数的飞速增长的双重巨大压力,在我们电信行业,同样面临着这样的难题, 是否有一套适合可行的方案来应对呢?

本文重点描述数据库的分割技术, 如果能适当的应用在生产中, 必然能极大减缓来自与 日俱增的业务量带来的巨大压力。

如何分割?我们可以从如下六个方面来考虑:

一、读写分离分布技术

由于数据库存在这样的特性, 索引可以提升查询的性能, 但却极大地影响了DML操作的性能。 面对此类矛盾很多人都很困惑, 其实我们可以对其进行分割, 将实时更新的数据库同步复制 到另外一个库中,该库以读操作为主,而索引则建立在只读库中,实现了最简单的读写分 离.当前计费应用中已经使用了该技术,采用的是 DSG 同步复制软件工具,取得了不错的 效果。 Myspace 公司早期(2004 年前后)只有 50 万用户时,数据库服务器无法满足当时的要 求.后来采用了三台 SQL SERVER 服务器,一个为主,所有数据向它提交,再由它复制到另 外两个库上,这样减少了压力,成功的度过了难关。

二、垂直分割技术

随着业务的发展,Myspace 公司在 2005 年用户达到了 200 万,存储成了最大的瓶颈. 此时该公司进行了第二次切割,对数据库采用垂直分割,分出多个数据库,不同数据库运行不同业务,这样极大的缓解了 IO,再次度过了难关。 在计费系统中, 也采用了这样的技术, 成功的将原有的数据库分离成账务 Cal、 统计 Stat、 计费 Bill 等多个数据库,也极大的缓解了 IO 的瓶颈,这也是成功的垂直切分技术的运用。

三、水平分割技术

Myspace 公司随着业务的飞速发展,很快在 2006 年实现了千万用户的飞速增长.这个 时候,由于业务量过于庞大,被切割出的每一个单独的业务难以避免产生了IO 瓶颈,这个时侯水平分割技术得以应用。Myspace 公司对所有的用户进行了水平分割,平均一个数据库保 存了多个用户及对应信息, 多的数据库用户数达到近 200 万个。 这样数据库无形中又被进行 了进一步的切割了, 变的更细小了, 无论是访问响应还是数据迁移, 都得到了极大的提升, Myspace 公司再次度过了难关! 当前电信诸多项目并未在水平切割上做太多的规划,实际上我们可以借鉴 Myspace 公 司的成功案例, 尝试将水平切割技术可以应用到我们电信项目中, 成为应对缓解数据库压力 的利器之一。

四、虚拟化存储技术

水平分割可以解决数据库主机的性能问题, 但是还可能存在这样的一种情况, 就是被切 割的数据库及用户可能存在有的访问量大, 有的访问量小的不均匀情况。 这个时侯我们可以 考虑引进现在新的存储技术,比如虚拟化存储技术,比较著名的有 3PARdata 的虚拟存储技术,让存储统一管理负载均衡。


五、WEB 缓存分割技术

Myspace 公司在 2008 年用户数终于突破了亿的大关,这个时候他们引进了新的技术,那就是数据缓存层技术,在 WEB 和数据库服务器之间做了一次分割,增加了一个能存储频繁 访问内容的数据库副本,这样极大地减少了访问的量,原先 1000 个用户查询同一数据,需查询数据库 1000 次,现在也许只需要 1 次。WEB 缓存切割成功地支撑住了过亿用户访问量的巨大压力。 当前网管项目组中通过自我编程的方式进行 WEB 缓存,并取得了不错的效果,这种思想正是切割技术的体现。

六、存储 CACHE 缓存分割技术

为了进一步提升在数据库方面的支撑能力, 最后 Myspace 公司在数据库和物 理存储中再次做了切割,引入了存储的多层 CACHE 机制,数据库在写入到多层 CACHE 后,交互就算完成,这样极大的减少了 IO 操作。而 CACHE 层面由于存在 断电的危险,所以,在除了不断电设备外,还做了多个 CACHE 镜像,保证了安全 性。 七、结束语 数据库的切割技术是一种重要的设计思想.Myspace 公司当前的月访问量达 400 亿,甚至超过了 YAHoo 公司,在成功引入并实施了这些切割技术后,依然运 行高效平稳! 我们电信项目组也有使用了相关的部分切割技术,并且取得了不错的效果。但是 随着业务发展的趋势, 仅仅当前采用的切割技术是不够的.不过相信我们只要有 这方面的良好意识, 能借鉴 Myspace 等公司的成功案例,就一定能在将来应对飞 速增长数据量的压力方面打个漂亮战.当然,光有分割的思想意识是不够的,实 施方面还有着相当的难度,无论开发、维护、业务需求、总体架构等各方面都需 综合考虑,任重而道远!


数据库分割扩展 此篇作为《架构即未来》读书笔记吧,再额外补充一下主从模式、分库分表实施的知识点 书中提到AKF扩展立体结构
数据库基础(二)----- 约束,数据库的设计、备份和还原 数据库基础(二)----- 约束,数据库的设计、备份和还原​ ✔  概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性 ✔  分类:     1. 主键约束:primary key     2. 非空约束:not null     3. 唯一约束:unique     4. 外键约束:foreign key ✔  非空约束:not null,值不能为null      1. 创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name为非空      2. 创建表
TCGA数据库的利用(三)—做差异分析的三种方法 今天更新TCGA数据库的利用系列第三篇文章,在对TCGA数据进行挖掘时,通常会筛选出来一些表达量显著异常的基因,作为后续研究的对象,这个筛选过程叫做差异分析;本篇文章将分为三大模块对差异分析进行介绍
时间序列数据库的内容,原因和方式 什么是时间序列数据? 为什么我们需要单独的数据库来处理数据库? 时间序列数据库如何处理数据? 如果您关注技术,则很有可能遇到术语 时间序列数据库 。 本文旨在传达- 什么是时间序列数据? 为什么时间序列现在变得越来越重要? 为什么我们需要一个单独的数据库来处理时间序列数据?
数据库必知词汇:数据库视图 视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
数据库必知词汇:MADLib Apache MADlib是Pivotal与UCBerkeley合作的一个基于SQL的数据库内置的可扩展的开源机器学习库,提供了精确的数据并行实现、统计和机器学习方法对结构化和非结构化数据进行分析。MADlib提供了丰富的分析模型,包括回归分析,决策树,随机森林,贝叶斯分类,向量机,风险模型,KMEAN聚集,文本挖掘,数据校验等。
数据库必知词汇:索引 索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。
潇湘隐者 网名潇湘隐者/潇湘剑客、英文名Kerry,兴趣广泛,广泛涉猎,个性随意,不善言辞。执意做一名会写代码的DBA,混迹于IT行业