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

简介:

浅谈数据库的分割技术 
                                                                                          电信信息化部/周陈雄
关健词    读写分离分布,垂直分割,水平分割,虚拟化存储,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 等公司的成功案例,就一定能在将来应对飞 速增长数据量的压力方面打个漂亮战.当然,光有分割的思想意识是不够的,实 施方面还有着相当的难度,无论开发、维护、业务需求、总体架构等各方面都需 综合考虑,任重而道远!

相关文章
|
21天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
43 3
|
21天前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
42 3
|
29天前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
55 8
|
27天前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
55 0
|
2月前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
2月前
|
NoSQL 关系型数据库 MongoDB
非关系型数据库-MongoDB技术(一)
非关系型数据库-MongoDB技术(一)
|
20天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
106 61
|
18天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
32 3
|
20天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
20天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
25 4