本发明专利技术公开了一种处理数据库操作请求的系统,其包括处理数据库操作请求的设备;一个或者多个应用服务器,适于向所述设备发送对于数据库的操作请求;以及数据库服务器,适于向所述设备提供所述分表信息,并且接收所述设备发送的修改后的操作请求;其中,所述处理数据库操作请求的设备包括:应用程序接口;解析器;操作请求修改器;以及数据库接口。
【技术实现步骤摘要】
本专利技术涉及数据库技术,尤其涉及一种处理数据库操作请求的系统。
技术介绍
在计算机时代,出现了专门用于存储、管理数据的数据库系统,而且数据库系统在网络应用上日益普及。一般来说,数据库系统中会包括一个或者多个数据库,专门用于存储某个应用的数据。在关系型数据库中,数据一般分布在多张数据表中,每张数据表存在某个方面的数据。例如在一个常用的网络应用的数据库中,有一张数据表存储用户的基本信息,有另一张数据表存储用户的登录信息等。随着时代的发展和技术的进步,目前人类社会每天产生的数据量相当惊人,海量数据造成关系型数据库(例如诸如MySQL)的数据表容量越来越大,一张表的条目(记录)数可达几千万甚至上亿条。数据库在对数据表进行处理时,需要锁表、操作、解锁等几个阶段,一张数据表的记录数过多,会造成很多操作同时等待解锁,造成数据库处理大型数据表时显得力不从心,性能下降严重。为了提高数据库操作数据表的性能,有必要将逻辑上的一张较大的表拆分成物理上的多张较小的子表。最常见的分表方案是在表结构里设置一个特殊的字段,以下称其为分表字段,其类型一般为整数,也可能为字符串等等。不同的记录根据分表字段值的不同,使用哈希等方式,将分表字段值与某个编号的子表关联。此方案最大的缺点是需要应用编写人员自己控制数据与具体的子表之间的对应关系,应用编写人员必须对数据库底层子表的实现方式非常了解,在编写具体的业务逻辑的同时,还要分心于逻辑表与物理子表的关系处理上,开发效率受到严重影响。其次,此方案的分表策略定得过于死板,不够灵活。如果要调整子表数量或是修改分表字段值与子表序号的对应关系,则应用编写人员必须也对代码作出相应修改,才能使应用在新的分表架构上正确运行,应用系统的维护成本很高。
技术实现思路
鉴于上述问题,提出了本专利技术,以便提供一种克服上述问题或者至少部分地解决上述问题的分配数据库操作请求的系统。依据本专利技术,提供了一种处理数据库操作请求的系统,包括处理数据库操作请求的设备;一个或者多个应用服务器,适于向该设备发送对于数据库的操作请求;以及数据库服务器,适于向该设备提供该分表信息,并且接收该设备发送的修改后的操作请求;其中,所述处理数据库操作请求的设备包括应用程序接口,适于从应用服务器接收对于数据库的操作请求;解析器,适于解析该操作请求,以获取该操作请求中的第一数据表名,并且根据分表信息解析该操作请求,以获取该操作请求中与该第一数据表名相关联的分表字段以及与该分表字段相对应的字段值,其中该分表信息包括要进行分表的数据表的数据表名以及与该数据表名相关联的分表字段;操作请求修改器,适于根据该分表信息和所获取的分表字段相对应的字段值,将该操作请求中的第一数据表名修改为第二数据表名;以及数据库接口,适于将修改后的操作请求发送给数据库服务器。可选地,在根据本专利技术的实施例的处理数据库操作请求的系统中,如果该操作请求中不存在第一数据表名,则该数据库接口将该操作请求发送给数据库服务器。可选地,在根据本专利技术的实施例的处理数据库操作请求的系统中,在该解析器根据分表信息解析操作请求时,如果该第一数据表名不在该分表信息中,则该数据库接口将该操作请求发送给数据库服务器;如果该第一数据表名在该分表信息中、但该解析器未从该操作请求中解析出与该第一数据表名相关联的分表字段及该分表字段相对应的字段值,则返回错误提示。可选地,在根据本专利技术的实施例的处理数据库操作请求的系统中,该分表信息还包括要进行分表的数据表的子表数量,该操作请求修改器根据与该分表字段相对应的字段值以及该数据表的子表数量,将该第一数据表名修改为第二数据表名。本专利技术提供了上述处理数据库操作请求的系统。根据本专利技术的实施例,根据来自数据库服务器的分表信息,解析应用服务器对于数据库的操作请求,以获取第一数据表名、与其相关联的分表字段以及字段值,并且根据该分表信息和字段值将第一数据表名修改为第二数据表名,并将修改后的操作请求发送给数据库服务器。由此,使得分表的过程对应用服务透明化,应用编写人员不再需要控制数据与具体的子表之间的对应关系,无论物理上存在多少张子表,应用编写人员所面对的是始终是逻辑上的一张表,应用编写人员不再需要关心数据库分表策略的实现细节,可以专注于编写具体的业务代码,只需在对于数据库的操作请求中包含分表字段的值即可。另外,根据本专利技术的实施例,通过更新分表信息,可以避免子表数量等分表信息的变化对应用代码的影响,应用只需要开发一次,不再需要由于数据库分表信息的调整而修改应用程序本身,极大地降低了维护成本。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1是根据本专利技术的实施例的处理数据库操作请求的方法的流程图;图2是根据本专利技术的一个实施例的处理数据库操作请求的方法各步骤的流程图;以及图3是根据本专利技术的实施例的处理数据库操作请求的设备以及系统的框图。具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示意性地图示了根据本专利技术的实施例的处理数据库操作请求的方法的流程图,并且图2示意性地图示了根据本专利技术的一个实施例的处理数据库操作请求的方法各步骤的流程图。下面将接合图1和图2对本专利技术进行详细的描述。根据本专利技术的实施例,数据库例如可以是MySQL数据库。在下文中,以MySQL数据库为例,对本专利技术的原理进行描述,然而,这只是为了示例的目的,本专利技术的范围并不限于此,本专利技术的原理同样适用于其它类型的数据库,例如IBM DB2, Oracle 10等数据库。如图1所示,根据本专利技术的实施例的处理数据库操作请求的方法100适于步骤S101,其中,接收对于数据库的操作请求。该对于数据库的操作请求例如来自于一个或者多个应用服务器。同样参见图2,首先,可以存储来自例如一个或者多个数据库服务器的分表信息。根据本专利技术的实施例,该分表信息可以包括要进行分表的数据表的数据表名以及与该数据表名相关联的分表字段。 接下来,在步骤SlOl中,从一个或者多个应用服务器接收对于数据库的操作请求,如果没有接收到,则继续等待;如果已经接收到,则进入下一步骤,即图1所示的步骤S103。根据本专利技术的实施例,该操作请求可以包括数据库程序语言语句。可选地,该数据库程序语言语句可以是SQL (Structured Query Language,结构化查询语言)语句。然而,SQL语言和SQL语句仅为示例,用于帮助读者理解本专利技术的原理,本专利技术的范围并不限于此,而是同样适用于其它适当的数据库程序语言和相对应的语句。在步骤S103中,解析该操作请求,以获取该操作请求中的第一数据表名(例本文档来自技高网...
【技术保护点】
一种处理数据库操作请求的系统(1000),包括:处理数据库操作请求的设备(200);一个或者多个应用服务器(300?1,…,300?n),适于向所述设备(200)发送对于数据库的操作请求;以及数据库服务器(400?1,…,400?n),适于向所述设备(200)提供所述分表信息,并且接收所述设备(200)发送的修改后的操作请求;其中,所述处理数据库操作请求的设备(200)包括:应用程序接口(201),适于从应用服务器接收对于数据库的操作请求;解析器(203),适于解析所述操作请求,以获取所述操作请求中的第一数据表名,并且根据分表信息解析所述操作请求,以获取所述操作请求中与所述第一数据表名相关联的分表字段以及与该分表字段相对应的字段值,其中所述分表信息包括要进行分表的数据表的数据表名以及与该数据表名相关联的分表字段;操作请求修改器(205),适于根据所述分表信息和所获取的分表字段相对应的字段值,将所述操作请求中的第一数据表名修改为第二数据表名;以及数据库接口(207),适于将修改后的操作请求发送给数据库服务器。
【技术特征摘要】
1.一种处理数据库操作请求的系统(1000),包括处理数据库操作请求的设备(200);一个或者多个应用服务器(300-1,…,300-n),适于向所述设备(200)发送对于数据库的操作请求;以及数据库服务器(400-1,…,400-n),适于向所述设备(200)提供所述分表信息,并且接收所述设备(200)发送的修改后的操作请求;其中,所述处理数据库操作请求的设备(200)包括应用程序接口(201),适于从应用服务器接收对于数据库的操作请求;解析器(203),适于解析所述操作请求,以获取所述操作请求中的第一数据表名,并且根据分表信息解析所述操作请求,以获取所述操作请求中与所述第一数据表名相关联的分表字段以及与该分表字段相对应的字段值,其中所述分表信息包括要进行分表的数据表的数据表名以及与该数据表名相关联的分表字段;操作请求修改器(205),适于根据所述分表信息和所获取的分表字段相对应的字段值, 将所述操作请求中的第一数据表名修改为第二数据表名;以及数据库接口( 207 ),适于将修改后的操作请求发送给数据库服务器。2.如权利要求1所述的系统,其中如果所述操作请求中不存在...
【专利技术属性】
技术研发人员:朱超,陈超,桂勇哲,代兵,王超,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。