[发明专利]数据库分区方法与系统有效
申请号: | 200910136968.6 | 申请日: | 2009-04-30 |
公开(公告)号: | CN101876983A | 公开(公告)日: | 2010-11-03 |
发明(设计)人: | 张剑鸣;高波;郭常杰;段宁 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 于静;李峥 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 分区 方法 系统 | ||
技术领域
本发明总体上涉及数据库分区方法与系统,特别的本发明涉及一种动态的数据库分区方法与系统。
背景技术
现有的数据库系统中,当用户应用(application)的数据被装载以后,随着用户业务的不断扩大,数据库中的数据可能会变的异常庞大。举个简单例子:一个包含十年发票记录的表可能占据几百万行的数据空间,查询(query)这样一个表所耗费的时间完全无法满足用户的需要。
为了提高查询的速度和效率,数据库分区技术应运而生。具体而言,数据库在一个非共享的环境中被分解为独立的分区,每个分区都具有自己的资源。数据通过哈希Hash算法均允地散列到不同的分区内,每个分区只负责处理自己的数据。当用户发出数据库查询语句SQL操作后,被连接的分区负责处理用户的请求。数据库分区的主要目的是为了提高数据并行处理性能,以及在特定的数据库查询操作中减少数据读写的总量以缩减响应时间。
数据库分区可以是物理分区也可以是逻辑分区。在一台物理机器上部署的一个分区,被称为物理分区,如果是在一台多处理系统(Symmetric Multi Processing,简称SMP)机器上部署多个分区,这些分区被称为逻辑分区。数据库可以选择物理分区,也可以选择逻辑分区。通常,如果决定采用大的SMP机器,有更多的CPU、内存及硬盘,数据库会采用逻辑分区;如果决定采用多台物理机器,数据库会通过非共享的体系结构采用物理分区;如果决定采用多台SMP机器,数据库则会采用物理分区和逻辑分区结合的方式。
数据库分区技术可以具备两大优点,其一是带来数据库性能的提升(Increased performance),继续上面的例子,一个占据了几百万行的数据的发票记录,利用数据库分区技术,可以被分为十个不同的分区,每个分区包含的是其中一年的记录。百万行的表划分为10个分区,每个分区就包含十万行数据,那么查询分区需要的时间仅仅是全表扫描的十分之一了。
其二,数据库分区技术可以实现对数据管理的简化(Simplified data management),分区技术可以让数据库的管理员利用其丰富的数据库管理经验提升数据的管理能力。通过优良的分区,管理员可以简化特定数据操作的执行方式。
对一个数据库应用的管理员而言,只要数据库供应商划分了分区,或者在初始配置时,由数据库应用的开发人员按照数据库应用的管理员的指示进行了分区,数据库应用的管理员在后续的数据库操作时往往没有能力对数据分区规则进行主动修改。
数据库供应商所提供的初始化分区方法往往仅支持基于哈希表的分区,这样的分区方案与应用数据完全无关——比如,无法实现上文的例子中的按年的分区方按,缺少分区的灵活度。所以很多数据库使用者更倾向于在数据库初始化分区时,编写应用程序代码,以实现数据库分区。然而通过编写程序代码实现数据分区修改起来比较复杂,数据库的使用者往往需要通过应用程序的开发人员来修改代码才能修改其分区方案。但是基于业务的应用(transaction based applications)越来越普及。对于大多数数据库应用而言,管理员很可能无法在一开始设计出有利的初始化分区方案。其结果是,随着业务的不断发展和数据量的不断提升,数据库系统的响应时间将会越来越慢,用户体验难以令人接受。在一些实际应用中,近期数据的查询率可能会远远高于历史数据的查询率。数据库管理员在一开始设定的分区规则——比如2009年以后的数据和2009年以前的数据被放置在不同的两个分区上——随着时间的改变也需要加以更新——比如一年以后将分界年由2009年修改为2010年,即2010年以后的数据和2010年以前的数据被放置在不同的两个分区上。
可见,现有技术虽然提供了数据库分区技术,但是很难在不改变应用程序代码的情况下,实现灵活的数据分区。
发明内容
为了解决现有技术中的问题,本发明提供了一种灵活、动态的数据库分区技术。本发明主要利用在数据库的数据表中插入数据分区键值的方法,以将符合特定数据分区规则的数据条目存储到特定的分区上,从而实现可更新,可随意定制的数据库分区方案。通过本发明,数据库使用者可以在不改变应用程序代码的前提下,动态的对数据库中的数据进行分区或者重新分区。这样,数据库使用者可以以最低的成本实现灵活的数据管理,同时大大提升数据库的查询速度和效率。需要说明的是,本发明并不特别限定分区的方式是逻辑分区还是物理分区,实际上本发明既适用于逻辑分区的数据库也适用于物理分区的数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910136968.6/2.html,转载请声明来源钻瓜专利网。