基于关系型数据库的数据处理方法、装置和系统与流程

文档序号:11950729阅读:204来源:国知局
本发明涉及通信
技术领域
:,具体涉及一种基于关系型数据库的数据处理方法、装置和系统。
背景技术
::随着互联网的蓬勃发展,互联网应用所面对的用户和访问量也急剧上升,传统的mysql(一种关系型数据库)数据库已经不能满足其需求,为此,现有技术提出了mysql分布式数据库,即将一张大表分成多个分表,并将分表分别存储在分库中,然后,由业务客户端通过某个特定的字段,再结合相应的路由规则来判断使用哪个分表,从而使得存储和性能的压力分散到各个分库中,在一定程度上提高数据库的存储能力和性能。但是,在对现有技术的研究和实践过程中,本发明的发明人发现,现有方案需要有特定的应用程序来管理分库分表及其路由规则,若分库分表较多,则该应用程序的开发难度较大,实现较为复杂,而且,现有方案所支持的功能也十分有限,比如不能有效支持跨表的联合查询(join)等。技术实现要素:本发明实施例提供一种基于关系型数据库的数据处理方法、装置和系统,不仅实现简单,而且可以支持跨表的联合查询(join)等功能,大大改善其性能。本发明实施例提供一种基于关系型数据库的数据处理方法,包括:接收客户端发送的数据处理请求,所述数据处理请求携带分片字段;根据所述数据处理请求获取预设的路由表,所述路由表保存有关系型数据库的结构信息,所述关系型数据库包括多个子库,所述子库包括多个分表,所述多个分表之间存在外键关联关系,所述分表包括多个分片;根据所述分片字段和路由表确定目标子库;将所述数据处理请求发送给所述目标子库,以便所述目标子库根据所述数据处理请求进行处理。相应的,本发明实施例还提供一种基于关系型数据库的数据处理装置,包括:接收单元,用于接收客户端发送的数据处理请求,所述数据处理请求携带分片字段;获取单元,用于根据所述数据处理请求获取预设的路由表,所述路由表保存有关系型数据库的结构信息,所述关系型数据库包括多个子库,所述子库包括多个分表,所述多个分表之间存在外键关联关系,所述分表包括多个分片;确定单元,用于根据所述分片字段和路由表确定目标子库;发送单元,用于将所述数据处理请求发送给所述目标子库,以便所述目标子库根据所述数据处理请求进行处理。此外,本发明实施例还提供一种数据处理系统,包括本发明实施例提供的任一种基于关系型数据库的数据处理装置。本发明实施例在接收到客户端发送的数据处理请求后,可以根据该数据处理请求获取预设的路由表,其中,该路由表保存有关系型数据库的结构信息,(该关系型数据库包括多个子库,该子库包括多个分表,这些多个分表之间存在外键关联关系,该分表包括多个分片),然后,根据该数据处理请求中携带的分片字段和该路由表确定目标子库,并将该数据处理请求发送给该目标子库,以便该目标子库根据数据处理请求进行处理;由于在该方案中,子库和分表的路由无需客户端来查找,因此,用户无需知晓各个子库和分表之间的逻辑,也就是说,从用户的角度看,就只是一个关系型数据库,所以,相对于现有技术需要有特定的应用程序来管理分库分表及其路由规则的方案而言,该方案只需在代理层设置简单的路由即可,实现较为简单;而且,由于在该方案中,每个子库的多个分表之间均存在外键关联关系,因此,可以有效支持跨表的联合查询(join)等操作,大大改善其性能。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1a是本发明实施例提供的基于关系型数据库的数据处理方法的场景示意图;图1b是本发明实施例提供的基于关系型数据库的数据处理方法的流程图;图2a是本发明实施例提供的基于关系型数据库的数据处理方法中插入操作的流程图;图2b是本发明实施例提供的方法中插入操作的场景示意图;图2c是本发明实施例提供的方法中建表操作的场景示意图;图3a是本发明实施例提供的基于关系型数据库的数据处理方法中查询操作的流程图;图3b是本发明实施例提供的方法中查询(带分片字段)的场景示意图;图3c是本发明实施例提供的方法中查询(不带分片字段)的场景示意图;图4a是本发明实施例提供的基于关系型数据库的数据处理方法中联合查询操作的流程图;图4b是本发明实施例提供的方法中联合查询的场景示意图;图5a是本发明实施例提供的基于关系型数据库的数据处理装置的结构示意图;图5b是本发明实施例提供的基于关系型数据库的数据处理装置的另一结构示意图;图6是本发明实施例提供的代理服务器的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种基于关系型数据库的数据处理方法、装置和系统。其中,该数据处理系统可以包括本发明实施例所提供的任一种基于关系型数据库的数据处理装置(简称数据处理装置),该数据处理装置具体可以集成在网络侧设备,如网关或代理服务器等设备中。此外,该数据处理系统还可以包括其他的设备,比如客户端设备、以及关系型数据库等。在建立关系型数据库时,可以将数据划分为多个分片(shard),并分别存储在不同的分表中,此外,还可以将存在外键关联关系的分表归为同一组,比如,多个分表如果具有相同的分片字段(shardkey,用于对分片进行标识),则为一个组,等等;其中,为了描述方便,在本发明实施例中,将每一组称为一个子库,一个关系型数据库可以包括多个子库,比如DB1、DB2和DB3,等等。数据处理装置中保存有相应的路由表,用于保存该关系型数据库的结构信息,从而使得在接收到数据处理请求时,可以基于该路由表进行路由。例如,以该数据处理装置具体集成在代理服务器中为例,如图1a所示,当代理服务器接收到客户端发送的携带分片字段的数据处理请求时,比如接收到关系型数据库的插入语句、查询语句、删除语句、更改语句或联合查询语句等结构化查询语言(SQL,StructuredQueryLanguage)语句时,便可以根据该数据处理请求获取预设的路由表,然后,根据该分片字段和路由表确定目标子库,并将该数据处理请求发送给该目标子库,以便该目标子库根据该数据处理请求进行处理。以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优先顺序的限定。实施例一、本发明实施例将从数据处理装置的角度进行描述,该数据处理装置具体可以集成在网络侧设备,如网关或代理服务器等设备中。一种基于关系型数据库的数据处理方法,包括:接收客户端发送的数据处理请求,该数据处理请求携带分片字段;根据该数据处理请求获取预设的路由表,该路由表保存有关系型数据库的结构信息,该关系型数据库包括多个子库,该子库包括多个分表,该多个分表之间存在外键关联关系,该分表包括多个分片;根据该分片字段和路由表确定目标子库;将该数据处理请求发送给该目标子库,以便该目标子库根据该数据处理请求进行处理。如图1b所示,该数据处理方法的具体流程可以如下:101、接收客户端发送的数据处理请求,该数据处理请求可以携带分片字段等信息。其中,该数据处理请求可以包括多种SQL语句,比如,具体可以为关系型数据库的插入语句、查询语句、删除语句、更改语句或联合查询语句等。其中,该数据处理请求所携带的分片字段的类型可以根据实际应用的需求而定,可以是字符串,也可以是一个具体的数值,在进行路由表查询时,具体可以对该分片字段进行哈希运算后取余,然后,根据得到的运算结果在路由表中进行查询,在此不再赘述。102、根据该数据处理请求获取预设的路由表。其中,该路由表保存有关系型数据库的结构信息,该结构信息包括该关系型数据库的数据结构、以及数据结构中各个组成部分的关联关系,比如,子库、分表和各个分片之间的关联关系,等等。其中,该关系型数据库具体可以为mysql或其他具有类似数据结构的数据库。该关系型数据库可以包括多个子库,该子库可以包括多个分表,该多个分表之间存在外键关联关系,每个分表可以包括多个分片。该关系型数据库可以由维护人员预先进行建立,或者,也可以由系统自行进行建立,即在步骤“接收客户端发送的数据处理请求”之前,该数据处理方法还可以包括:(1)接收客户端发送的关系型数据库的建表语句,该建表语句指示需要建立的分表名称;(2)对该建表语句进行语法分析,以确定该建表语句中是否指定了分片字段的字段名,若是,则执行步骤(3),若否,则执行步骤(4)。(3)在确定该建表语句中指定了分片字段的字段名时,建立该分表名称与字段名之间的关联关系,将该关联关系记录到预设的路由表中,并将该建表语句发送给关系型数据库,以进行建表操作。其中,为了便于后续建立各个分表之间的外键关联关系,可以将具有相同分片字段的建表语句归为同一子库,即步骤“将该建表语句发送给关系型数据库”可以包括:确定路由表中是否存在以该字段名为分片字段的其他分表,若存在,则将该建表语句发送给该其他分表所属的子库,以进行建表操作;若不存在,则将该建表语句发送给关系型数据库中的所有子库,以进行建表操作。这样,在建表之后,后续便可以根据该分片字段还建立各个分表之间的外键关联关系,即在进行建表操作之后,该数据处理方法还可以包括:根据该字段名设置建立的分表与该其他分表之间的外键关联关系。比如,可以由该数据处理装置直接根据该字段名设置建立的分表与该其他分表之间的外键关联关系,或者,也可以由该数据处理装置发送相应的外键设置请求给关系型数据库,由关系型数据库根据该字段名设置建立的分表与该其他分表之间的外键关联关系,等等,在此不再赘述。(4)在确定该建表语句中没有指定分片字段的字段名时,拒绝该建表语句。此外,可选的,该方案还可以支持单后端事务,比如,当开始一个事务时,可以对每一条数据处理请求进行分析,若其中某一条数据处理请求对应的关系型数据库与上一条不同,则拒绝该数据处理请求,即根据该数据处理请求获取预设的路由表(即步骤102)之前,该数据处理方法还可以包括:判断该数据处理请求所对应的关系型数据库是否与上一条数据处理请求所对应的关系型数据库一致;若一致,才执行根据该数据处理请求获取预设的路由表的步骤,否则,若不一致,则拒绝该数据处理请求。可选的,在拒绝该数据处理请求时,还可以进行报错,比如生成错误提示信息,并将该错误提示信息发送给客户端,等等。可选的,在判断该数据处理请求所对应的关系型数据库是否与上一条数据处理请求所对应的关系型数据库一致之前,还可以判断该数据处理请求是否为事务结束语句,若是,则结束当前事务,否则,如果不是事务结束语句,才执行判断该数据处理请求所对应的关系型数据库是否与上一条数据处理请求所对应的关系型数据库一致的步骤。103、根据该分片字段和路由表确定目标子库。其中,根据不同的数据处理请求,确定目标子库的方式也有所不同,例如,以插入、查询、删除、更改和联合查询(join)为例,具体可以如下:(1)插入;若该数据处理请求为关系型数据库的插入语句,则步骤“根据该分片字段和路由表确定目标子库”包括:对该插入语句进行语法分析,以确定该插入语句中是否存在该路由表已记录的分片字段;若存在,则根据该插入语句中携带的分片字段查找路由表,以确定目标子库;若不存在,则拒绝该插入语句。(2)查询;若该数据处理请求为关系型数据库的查询语句,则步骤“根据该分片字段和路由表确定目标子库”包括:对该查询语句进行语法分析,以确定该查询语句中是否存在该路由表已记录的分片字段;若存在,则根据该查询语句中携带的分片字段查找路由表,以确定目标子库;若不存在,则将关系型数据库中的所有子库确定为目标子库。删除和更改与查询类似,详见以下的(3)和(4)。(3)删除;若该数据处理请求为关系型数据库的删除语句,则步骤“根据该分片字段和路由表确定目标子库”包括:对该删除语句进行语法分析,以确定该删除语句中是否存在该路由表已记录的分片字段;若存在,则根据该删除语句中携带的分片字段查找路由表,以确定目标子库;若不存在,则将关系型数据库中的所有子库确定为目标子库。(4)更改;若该数据处理请求为关系型数据库的更改语句,则步骤“根据该分片字段和路由表确定目标子库”包括:对该更改语句进行语法分析,以确定该更改语句中是否存在该路由表已记录的分片字段;若存在,则根据该更改语句中携带的分片字段查找路由表,以确定目标子库;若不存在,则将关系型数据库中的所有子库确定为目标子库。(5)联合查询;若该数据处理请求为关系型数据库的联合查询语句,该联合查询语句指示需要进行联合查询的分表的名称,则步骤“根据该分片字段和路由表确定目标子库”包括:对该联合查询语句进行语法分析,以确定该联合查询语句是否满足第一条件或第二条件,其中,该第一条件为该联合查询语句中携带值为常量的分片字段,该第二条件为该联合查询语句中携带所有需要进行联合查询的分表的分片字段,且分片字段之间的比较运算符为等号;若满足第一条件或第二条件,则根据该联合查询语句中携带的分片字段查找路由表,以确定目标子库;若不满足第一条件和第二条件,则拒绝该联合查询语句。104、将该数据处理请求发送给该目标子库,以便该目标子库根据该数据处理请求进行处理。例如,如果该数据处理请求为插入语句,则此时,目标子库可以根据该插入语句进行插入操作;同理,若该数据处理请求为查询语句、删除语句、更改语句或联合查询语句,则此时,目标子库可以根据这些语句进行查询、删除、更改或联合查询等操作,在此不再赘述。可选的,在进行联合查询时,该数据处理装置除了可以将联合查询结果直接提供给客户端之外,还可以对联合查询结果进行聚合后,才提供给客户端,即在步骤“将该数据处理请求发送给该目标子库”之后,该数据处理装置还可以包括:接收该目标子库返回的联合查询结果,对该联合查询结果进行聚合,得到聚合结果,将该聚合结果发送给客户端。由上可知,本实施例在接收到客户端发送的数据处理请求后,可以根据该数据处理请求获取预设的路由表,其中,该路由表保存有关系型数据库的结构信息,(该关系型数据库包括多个子库,该子库包括多个分表,这些多个分表之间存在外键关联关系,该分表包括多个分片),然后,根据该数据处理请求中携带的分片字段和该路由表确定目标子库,并将该数据处理请求发送给该目标子库,以便该目标子库根据数据处理请求进行处理;由于在该方案中,子库和分表的路由无需客户端来查找,因此,用户无需知晓各个子库和分表之间的逻辑,也就是说,从用户的角度看,就只是一个关系型数据库,所以,相对于现有技术需要有特定的应用程序来管理分库分表及其路由规则的方案而言,该方案只需在代理层设置简单的路由即可,实现较为简单;而且,由于在该方案中,每个子库的多个分表之间均存在外键关联关系,因此,可以有效支持跨表的联合查询(join)等操作,大大改善其性能。据实施例一所描述的方法,以下将在实施例二至五中分别举例作进一步详细说明。实施例二、在本实施例中,将以该数据处理装置具体集成在代理服务器中,该关系型数据库具体为mysql,其该数据处理请求具体为mysql的插入语句为例进行说明。如图2a所示,一种基于关系型数据库的数据处理方法,具体流程可以如下:201、客户端向代理服务器发送mysql的插入语句。其中,该插入语句可以携带分片字段,比如,以指定字段名为“a1”的分片作为分片字段为例,则此时,可以在插入语句中携带“a1”等信息。202、代理服务器接收到该插入语句后,根据该插入语句获取预设的路由表。其中,该路由表保存有mysql的结构信息,该mysql可以包括多个子库,该子库可以包括多个分表,该多个分表之间存在外键关联关系,每个分表可以包括多个分片。例如,参见图2b,以该mysql包括三个子库:DB1、DB2和DB3为例,则该路由表中的部分信息具体可以如下:其中,每个子库可以多个分表,比如,可以包括分表t1和分表t2等,而每个分表则可以包括32个分片,比如,子库DB1中的每个分表可以包括分片字段的哈希值为0~31的分片,而子库DB2中的每个分表可以包括分片字段的哈希值为31~63的分片,而子库DB3中的每个分表可以包括分片字段的哈希值为63~95的分片,等等。可以根据实际应用的需求指定相应的字段为分片字段,比如,在上述路由表中,则指定了字段名为“a1”的分片作为t1分表的分片字段(即shardkey:a1),以及指定了字段名为“a2”的分片作为t2分表的分片字段(即shardkey:a2)。其中,该mysql除了可以由维护人员预先进行建立之外,也可以由系统自行进行建立,例如,以该mysql包括三个子库:DB1、DB2和DB3为例,则参见图2c,其建表流程具体可以如下:S1、客户端向代理服务器发送mysql的建表语句,该建表语句指示需要建立的分表名称。例如,如果需要建立分表t1,则此时,可以在该建表语句指示需要建立的分表为“t1”,同理,如果需要建立分表t2,则可以在该建表语句指示需要建立的分表为“t2”,等等。S2、代理服务器在接收到该建表语句后,对该建表语句进行语法分析,以确定该建表语句中是否指定了分片字段的字段名,若是,则执行步骤S3,若否,则拒绝该建表语句。例如,以建立分表t1为例,若建表语句为:mysql>createtablet1(aint,bint,cchar(20));则由于该建表语句中没有指定分片字段的字段名,因此,此时可以拒绝该建表语句。可选的,可以生成相应的错误提示信息,如下:ERROR1005(07000):proxyWarning-sqlisnotlegal,tokenizer_gramwentwrong。又例如,还是以建立分表t1为例,若建表语句为:mysql>createtablet1(aint,bint,cchar(20))shardkey=a1;则由于该建表语句中指定了分片字段的字段名“shardkey=a1”,因此,此时可以执行步骤S3,可选的,还可以生成相应的提示信息,以表示允许建立,比如,可以生成如下语句:QuervOK,0rowsaffected(1.56sec)。S3、代理服务器在确定该建表语句中指定了分片字段的字段名时,建立该分表名称与字段名之间的关联关系,将该关联关系记录到预设的路由表中,并将该建表语句发送给mysql。其中,为了便于后续建立各个分表之间的外键关联关系,可以将具有相同分片字段的建表语句归为同一子库,即步骤“将该建表语句发送给mysql”可以包括:确定路由表中是否存在以该字段名为分片字段的其他分表,若存在,则将该建表语句发送给该其他分表所属的子库,以进行建表操作;若不存在,则将该建表语句发送给mysql中的所有子库。S4、mysql在接收到建表语句后,根据该建表语句进行建表操作。比如,如果子库DB1、DB2和DB3均接收到该建表语句,其该建表语句指示建立分表t1,则此时,可以分别在各个子库(即DB1、DB2和DB3)中对分表t1进行建表操作,而如果该建表语句指示建立分表t2,则此时,可以分表在各个子库中对分表t2进行建表操作,等等。S5、可选的,mysql在建表之后,可以返回指示建表成功的响应给代理服务器。S6、代理服务器根据该字段名设置建立的分表与该其他分表之间的外键关联关系。比如,可以由该代理服务器直接根据该字段名设置建立的分表与该其他分表之间的外键关联关系,或者,也可以由该代理服务器发送相应的外键设置请求给mysql,由mysql根据该字段名设置建立的分表与该其他分表之间的外键关联关系,比如,可以建立分表t1和分表t2之间的外键关联关系,等等,在此不再赘述。203、代理服务器对该插入语句进行语法分析,以确定该插入语句中是否存在该路由表已记录的分片字段;若存在,则执行步骤204,若不存在,则拒绝该插入语句,比如,可以向客户端发送错误提示信息,等等。例如,若该插入语句为:mysql>inserintot1(b1,c1)values(4,“record3”);则由于该插入语句中不存在该路由表已记录的分片字段(分表t1所指定的分片字段为a1),因此,此时代理服务器可以拒绝该插入语句。可选的,可以生成相应的错误提示信息,如下:ERROR1005(07000):proxyWarning-sqlisnoshardkey。又例如,若该插入语句为:mysql>inserintot1(a1,c1)values(4,“record3”);则由于该插入语句中存在该路由表已记录的分片字段“a1”(分表t1所指定的分片字段为a1),因此,此时可以执行步骤204。可选的,还可以生成相应的提示信息,以表示允许插入,比如,可以生成如下语句:QuervOK,1rowsaffected(0.01sec)。204、代理服务器根据该插入语句中携带的分片字段查找路由表,以确定目标子库。例如,还是以如下插入语句为例:mysql>inserintot1(a1,c1)values(4,“record3”);根据路由表可知,子库DB1、DB2和DB3中均存在分表t1,因此,可以根据a1的具体值,从DB1、DB2和DB3中确定目标子库,比如若a1的哈希值为0~31中的任意一个值,则目标子库为DB1;若a1的哈希值为31~63中的任意一个值,则目标子库为DB2;若a1的哈希值为63~95中的任意一个值,则目标子库为DB3。205、代理服务器将该插入语句发送给该目标子库,并执行步骤206。例如,如果在步骤204中,确定目标子库为DB1、DB2或DB3,则此时,代理服务器可以将该插入语句发送给DB1、DB2或DB3。206、目标子库根据该插入语句进行插入操作。可选的,在插入操作执行完毕后,目标子库还可以返回相应的执行结果给代理服务器,由代理服务器发送给客户端,以通知用户,等等。由上可知,本实施例在接收到客户端发送的插入语句后,可以根据该插入语句获取预设的路由表,然后,根据该插入语句中携带的分片字段和该路由表确定目标子库,并将该插入语句发送给该目标子库,以便该目标子库根据插入语句进行插入操作;由于在该方案中,子库和分表的路由无需客户端来查找,因此,用户无需知晓各个子库和分表之间的逻辑,也就是说,从用户的角度看,就只是一个mysql,所以,相对于现有技术需要有特定的应用程序来管理分库分表及其路由规则的方案而言,该方案只需在代理层设置简单的路由即可,实现较为简单;而且,由于该方案在建表的时候,将具有相同分片字段的分表归为同一子库,因此,每个子库的多个分表之间均存在外键关联关系,所以,可以有效支持跨表的join等操作,大大改善其性能。实施例三、与实施例二相同的是,本实施例同样以该数据处理装置具体集成在代理服务器中,且该关系型数据库具体为mysql为例进行说明。与实施例二不同的是,在本实施例中,将以该数据处理请求具体为mysql的查询语句为例进行说明。如图3a所示,一种基于关系型数据库的数据处理方法,具体流程可以如下:301、客户端向代理服务器发送mysql的查询语句。其中,该查询语句可以携带分片字段,比如,以指定字段名为“a1”的分片作为分片字段为例,则此时,可以在插入语句中携带“a1=xxx”等信息,其中,“xxx”可以是字符串,也可以是一个具体的数值,比如1、2或86,等等;后续在进行路由表查询时,可以对该“xxx”进行哈希运算后取余,然后,根据得到的运算结果在路由表中进行查询,在此不再赘述。302、代理服务器接收到该查询语句后,根据该查询语句获取预设的路由表。其中,该路由表保存有mysql的结构信息,该mysql可以包括多个子库,该子库可以包括多个分表,该多个分表之间存在外键关联关系,每个分表可以包括多个分片。例如,参见图3b和图3c,以该mysql包括三个子库:DB1、DB2和DB3为例,则该路由表中的部分信息具体可以如下:其中,每个子库可以多个分表,比如,可以包括分表t1和分表t2等,而每个分表则可以包括32个分片,比如,子库DB1中的每个分表可以包括分片字段的哈希值为0~31的分片,而子库DB2中的每个分表可以包括分片字段的哈希值为31~63的分片,而子库DB3中的每个分表可以包括分片字段的哈希值为63~95的分片,等等。可以根据实际应用的需求指定相应的字段为分片字段,比如,在上述路由表中,则指定了字段名为“a1”的分片作为t1分表的分片字段(即shardkey:a1),以及指定了字段名为“a2”的分片作为t2分表的分片字段(即shardkey:a2)。其中,该mysql除了可以由维护人员预先进行建立之外,也可以由系统自行进行建立,具体可参见实施例二,在此不再赘述。303、代理服务器对该查询语句进行语法分析,以确定该查询语句中是否存在该路由表已记录的分片字段;若存在,则执行步骤304,若不存在,则执行步骤305。例如,若该查询语句为:mysql>select*fromt1wherea1=19;则由于该查询语句的限定条件中存在该路由表已记录的分片字段“a1”,因此,可以执行步骤304。又例如,若该查询语句为:mysql>select*fromt1whereuname=‘xxx’;则由于该查询语句的限定条件中只是指示查询“uname”为“xxx”的数据,而不存在该路由表已记录的分片字段“a1”,因此,可以执行步骤305。304、代理服务器根据该查询语句中携带的分片字段查找路由表,以确定目标子库,然后执行步骤306。例如,还是以如下查询语句为例:mysql>select*fromt1wherea1=19;由于该查询语句中指示查询a1=19的分片,而根据路由表可知,“19”位于子库DB1中,因此,可以确定子库DB1为目标子库,具体可参见图3b。305、代理服务器将mysql中的所有子库确定为目标子库,然后执行步骤306。例如,以该mysql中包括子库DB1、DB2和DB3为例,则此时,代理服务器可以将DB1、DB2和DB3确定为目标子库,具体可参见图3c。306、代理服务器将该查询语句发送给该目标子库,并执行步骤307。例如,代理服务器具体可以将该查询语句发送给目标子库中相应的分表,比如,如果查询语句指示对分表t1进行查询,则此时,可以将该查询语句发送给目标子库中的分表t1。比如,参见图3b,由于查询语句指示查询分表t1中的“a1=19”的分片,因此,此时,代理服务器可以将该查询语句发送给DB1中的分表t1。又比如,参见图3c,由于查询语句指示查询分表t1中的名称为“xxx”的分片,因此,此时,代理服务器可以将该查询语句分表发送给DB1、DB2和DB3中的分表t1,等等。307、目标子库根据该插查询语句进行插查询操作。例如,若目标子库为DB1,则DB1可以根据该插查询语句对a1=19”的分片进行查询。又例如,若目标子库为DB1、DB2和DB3,则DB1、DB2和DB3可以根据该插查询语句在t1中对“uname”为“xxx”的数据进行查询,等等。可选的,在查询操作执行完毕后,目标子库还可以返回相应的执行结果给代理服务器,由代理服务器发送给客户端,以通知用户,等等。由上可知,本实施例在接收到客户端发送的查询语句后,可以根据该查询语句获取预设的路由表,然后,根据该查询语句中携带的分片字段和该路由表确定目标子库,并将该查询语句发送给该目标子库,以便该目标子库根据查询语句进行查询操作;由于在该方案中,子库和分表的路由无需客户端来查找,因此,用户无需知晓各个子库和分表之间的逻辑,也就是说,从用户的角度看,就只是一个mysql,所以,相对于现有技术需要有特定的应用程序来管理分库分表及其路由规则的方案而言,该方案只需在代理层设置简单的路由即可,实现较为简单;而且,由于该方案在建表的时候,将具有相同分片字段的分表归为同一子库,因此,每个子库的多个分表之间均存在外键关联关系,所以,可以有效支持跨表的join等操作,大大改善其性能。需说明的是,由于删除语句和更改语句等操作与查询语句类似,因此,删除语句和更改语句等操作的具体实施、以及有益效果可参见实施例三,在此不再赘述。实施例四、与实施例二和三相同的是,本实施例同样以该数据处理装置具体集成在代理服务器中,且该关系型数据库具体为mysql为例进行说明。与实施例二和三不同的是,在本实施例中,将以该数据处理请求具体为mysql的联合查询(join)语句为例进行说明。如图4a所示,一种基于关系型数据库的数据处理方法,具体流程可以如下:401、客户端向代理服务器发送mysql的联合查询语句。其中,该联合查询句指示需要进行联合查询的分表的名称,此外,该联合查询还可以携带分片字段。402、代理服务器接收到该联合查询语句后,根据该联合查询语句获取预设的路由表。其中,该路由表保存有mysql的结构信息,该mysql可以包括多个子库,该子库可以包括多个分表,该多个分表之间存在外键关联关系,每个分表可以包括多个分片,该路由表和mysql的结构具体可参见实施例二和三,在此不再赘述。其中,该mysql除了可以由维护人员预先进行建立之外,也可以由系统自行进行建立,具体可参见实施例二,在此不再赘述。403、代理服务器对该联合查询语句进行语法分析,以确定该联合查询语句中是否携带值为常量的分片字段,若是,则执行步骤405;若否,则执行步骤404。例如,若该联合查询语句为:mysql>selectt1.b1fromt1innerjoint2ont1.a1=t2.a2;由于该联合查询语句中,没有携带值为常量的分片字段,因此,此时可以执行步骤404。404、代理服务器确定该联合查询语句中是否携带所有需要进行联合查询的分表的分片字段,且分片字段之间的比较运算符为等号,若是,则执行步骤405;若否,则拒绝该联合查询语句,比如,可以向客户端发送错误提示信息,等等。例如,还是以如下联合查询语句为例:mysql>selectt1.b1fromt1innerjoint2ont1.a1=t2.a2;由于该联合查询语句中,携带所有需要进行联合查询的分表的分片字段,且分片字段之间的比较运算符为等号,即“t1.a1=t2.a2”因此,此时可以执行步骤405。需说明的是,除了先进行步骤403中的判断,再进行步骤404中的判断之外,也可以进行步骤404中的判断,再进行步骤403中的判断,即先判断该联合查询语句中是否携带所有需要进行联合查询的分表的分片字段,且分片字段之间的比较运算符为等号,若是,则执行步骤405,若否,则判断该联合查询语句中是否携带值为常量的分片字段,若携带了值为常量的分片字段,则执行步骤405,否则,若没有携带值为常量的分片字段,则拒绝该联合查询语句。405、代理服务器根据该联合查询语句中携带的分片字段查找路由表,以确定目标子库。例如,还是以步骤404中的例子为例,由于该联合查询语句中指示需要进行联合查询的分表为t1和t2,而根据路由表可知,分库DB1、DB2和DB3中均存在t1和t2,因此,此时,可以确定目标子库为DB1、DB2和DB3。406、代理服务器将该联合查询语句发送给该目标子库,并执行步骤407。例如,如果在步骤405中,确定目标子库为DB1、DB2和DB3,则此时,代理服务器可以将该联合查询语句分表发送给DB1、DB2和DB3。407、目标子库根据该联合查询语句进行联合查询操作。例如,可以对t1和t2进行join操作。可选的,在插入操作执行完毕后,目标子库还可以返回相应的执行结果给代理服务器,即该方案还可以包括步骤408至410。408、目标子库向代理服务器返回联合查询结果。409、代理服务器接收到该联合查询结果后,对该联合查询结果进行聚合,得到聚合结果。410、代理服务器将该聚合结果发送给客户端。由上可知,本实施例在接收到客户端发送的联合查询(join)语句后,可以根据该联合查询语句获取预设的路由表,然后,根据该联合查询语句中携带的分片字段和该路由表确定目标子库,并将该联合查询语句发送给该目标子库,以便该目标子库根据联合查询语句进行联合查询操作;由于在该方案中,子库和分表的路由无需客户端来查找,因此,用户无需知晓各个子库和分表之间的逻辑,也就是说,从用户的角度看,就只是一个mysql,所以,相对于现有技术需要有特定的应用程序来管理分库分表及其路由规则的方案而言,该方案只需在代理层设置简单的路由即可,实现较为简单;而且,由于该方案在建表的时候,将具有相同分片字段的分表归为同一子库,因此,每个子库的多个分表之间均存在外键关联关系,所以,可以有效支持跨表的join等操作,大大改善其性能。实施例五、可选的,在实施例二、三和四的基础上,本发明实施例所提供的数据处理方法还可以支持单后端事务操作,比如,当开始一个事务时,可以对每一条数据处理请求,如对插入语句或查询语句等进行分析,若其中某一条数据处理请求对应的关系型数据库与上一条不同,则拒绝该数据处理请求,等等。即在根据数据处理请求(如插入语句、查询语句、删除语句、更改语句、或联合查询语句等)获取预设的路由表之前,该数据处理方法还可以包括:代理服务器判断该数据处理请求所对应的mysql是否与上一条数据处理请求所对应的mysql一致,若一致,才执行根据该数据处理请求获取预设的路由表的步骤,否则,若不一致,则拒绝该数据处理请求,比如,拒绝该插入请求、查询请求、删除请求、更改请求、或联合查询请求,等等。可选的,在拒绝该数据处理请求请求时,还可以进行报错,比如生成错误提示信息,并将该错误提示信息发送给客户端,等等。可选的,在判断该数据处理请求所对应的mysql是否与上一条数据处理请求所对应的mysql一致之前,还可以判断该查询语句是否为事务结束语句,若是,则结束当前事务,否则,如果不是事务结束语句,才执行判断该数据处理请求所对应的mysql是否与上一条数据处理请求所对应的mysql一致的步骤。可见,本实施例除了可以实现如实施例二至四所能实现的有益效果之外,还可以支持单后端事务操作,有利于提高灵活性和处理效率。实施例六、为了更好地实现以上方法,本发明实施例还提供一种基于关系型数据库的数据处理装置,简称数据处理装置,如图5a所示,该数据处理装置包括接收单元501、获取单元502、确定单元503和发送单元504,如下:(1)接收单元501;接收单元501,用于接收客户端发送的数据处理请求,该数据处理请求携带分片字段。其中,该数据处理请求可以包括多种SQL语句,比如,具体可以为关系型数据库的插入语句、查询语句、删除语句、更改语句或联合查询语句等。其中,该数据处理请求所携带的分片字段的类型可以根据实际应用的需求而定,可以是字符串,也可以是一个具体的数值,在进行路由表查询时,具体可以对该分片字段进行哈希运算后取余,然后,根据得到的运算结果在路由表中进行查询,在此不再赘述。(2)获取单元502;获取单元502,用于根据该数据处理请求获取预设的路由表,该路由表保存有关系型数据库的结构信息,该关系型数据库包括多个子库,该子库包括多个分表,该多个分表之间存在外键关联关系,该分表包括多个分片。该关系型数据库可以由维护人员预先进行建立,或者,也可以由系统自行进行建立,即如图5b所示,该数据处理装置还可以包括建表单元505,如下:接收单元501,还可以用于接收客户端发送的关系型数据库的建表语句,该建表语句指示需要建立的分表名称。建表单元505,对该建表语句进行语法分析,以确定该建表语句中是否指定了分片字段的字段名;若是,则建立该分表名称与字段名之间的关联关系,将该关联关系记录到预设的路由表中,将该建表语句发送给关系型数据库,以进行建表操作;若否,则拒绝该建表语句。其中,为了便于后续建立各个分表之间的外键关联关系,可以将具有相同分片字段的建表语句归为同一子库,即:该建表单元505,具体可以用于在确定该建表语句中指定了分片字段的字段名时,确定路由表中是否存在以该字段名为分片字段的其他分表;若存在,则将该建表语句发送给该其他分表所属的子库,以进行建表操作;若不存在,则将该建表语句发送给关系型数据库中的所有子库,以进行建表操作。这样,在建表之后,后续便可以根据该分片字段还建立各个分表之间的外键关联关系,即:该建表单元505,还可以用于根据该字段名设置建立的分表与该其他分表之间的外键关联关系。(3)确定单元503;确定单元503,用于根据该分片字段和路由表确定目标子库。(4)发送单元504;发送单元504,用于将该数据处理请求发送给该目标子库,以便该目标子库根据该数据处理请求进行处理。其中,根据不同的数据处理请求,确定单元503确定目标子库的方式也有所不同,例如,以插入、查询、删除、更改和联合查询(join)为例,具体可以如下:(A)插入;若该数据处理请求为关系型数据库的插入语句,则数据处理请求为关系型数据库的插入语句,则该确定单元503,具体可以用于:对该插入语句进行语法分析,以确定该插入语句中是否存在该路由表已记录的分片字段;若存在,则根据该插入语句中携带的分片字段查找路由表,以确定目标子库;若不存在,则拒绝该插入语句。(B)查询、删除或更改;若该数据处理请求为关系型数据库的查询语句,则该数据处理请求为关系型数据库的查询语句、删除语句或更改语句,则该确定单元503,具体可以用于:对该查询语句、删除语句或更改语句进行语法分析,以确定该查询语句、删除语句或更改语句中是否存在该路由表已记录的分片字段;若存在,则根据该查询语句、删除语句或更改语句中携带的分片字段查找路由表,以确定目标子库;若不存在,则将关系型数据库中的所有子库确定为目标子库。(C)联合查询;若该数据处理请求为关系型数据库的联合查询语句,该联合查询语句指示需要进行联合查询的分表的名称,则该确定单元503,具体可以用于:对该联合查询语句进行语法分析,以确定该联合查询语句是否满足第一条件或第二条件;若满足第一条件或第二条件,则根据该联合查询语句中携带的分片字段查找路由表,以确定目标子库;若不满足第一条件和第二条件,则拒绝该联合查询语句。其中,该第一条件为该联合查询语句中携带值为常量的分片字段,该第二条件为该联合查询语句中携带所有需要进行联合查询的分表的分片字段,且分片字段之间的比较运算符为等号可选的,在进行联合查询时,该数据处理装置除了可以将联合查询结果直接提供给客户端之外,还可以对联合查询结果进行聚合后,才提供给客户端,即如图5b所示,该数据处理装置还可以包括聚合单元506,如下:该接收单元501,还可以用于接收该目标子库返回的联合查询结果。该聚合单元506,可以用于对该联合查询结果进行聚合,得到聚合结果。发送单元504,还可以用于将该聚合结果发送给客户端。此外,可选的,该方案还可以支持单后端事务,比如,当开始一个事务时,可以对每一条数据处理请求进行分析,若其中某一条数据处理请求对应的关系型数据库与上一条不同,则拒绝该数据处理请求,即如图5b所示,该数据处理装置还可以包括判断单元507,如下:该判断单元507,可以用于判断该数据处理请求所对应的关系型数据库是否与上一条数据处理请求所对应的关系型数据库一致;若一致,则触发获取单元502执行根据该数据处理请求获取预设的路由表的操作,若不一致,则拒绝该数据处理请求。可选的,在拒绝该数据处理请求时,该判断单元507还可以进行报错,比如生成错误提示信息,并由发送单元504将该错误提示信息发送给客户端,等等。可选的,在判断该数据处理请求所对应的关系型数据库是否与上一条数据处理请求所对应的关系型数据库一致之前,判断单元507还可以判断该数据处理请求是否为事务结束语句,若是,则结束当前事务,否则,如果不是事务结束语句,才执行判断该数据处理请求所对应的关系型数据库是否与上一条数据处理请求所对应的关系型数据库一致的操作。具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。该数据处理装置具体可以集成在网络侧设备,如网关或代理服务器等设备中。由上可知,本实施例在接收到客户端发送的数据处理请求后,可以由获取单元502根据该数据处理请求获取预设的路由表,其中,该路由表保存有关系型数据库的结构信息,(该关系型数据库包括多个子库,该子库包括多个分表,这些多个分表之间存在外键关联关系,该分表包括多个分片),然后,由确定单元503根据该数据处理请求中携带的分片字段和该路由表确定目标子库,并由发送单元504将该数据处理请求发送给该目标子库,以便该目标子库根据数据处理请求进行处理;由于在该方案中,子库和分表的路由无需客户端来查找,因此,用户无需知晓各个子库和分表之间的逻辑,也就是说,从用户的角度看,就只是一个关系型数据库,所以,相对于现有技术需要有特定的应用程序来管理分库分表及其路由规则的方案而言,该方案只需在代理层设置简单的路由即可,实现较为简单;而且,由于在该方案中,每个子库的多个分表之间均存在外键关联关系,因此,可以有效支持跨表的联合查询(join)等操作,大大改善其性能。实施例七、相应的,本发明实施例还提供一种数据处理系统,可以包括本发明实施例所提供的任一种数据处理装置(即基于关系型数据库的数据处理装置),具体可参见实施例六,该数据处理装置具体可以集成在网络侧设备,如网关或代理服务器等设备中,例如,以该数据处理装置具体集成在代理服务器中为例,则具体可以如下:代理服务器,用于接收客户端发送的数据处理请求,该数据处理请求携带分片字段;根据该数据处理请求获取预设的路由表,该路由表保存有关系型数据库的结构信息,该关系型数据库包括多个子库,该子库包括多个分表,该多个分表之间存在外键关联关系,该分表包括多个分片;根据该分片字段和路由表确定目标子库;将该数据处理请求发送给该目标子库,以便该目标子库根据该数据处理请求进行处理。该数据处理请求可以包括多种SQL语句,比如,具体可以为关系型数据库的插入语句、查询语句、删除语句、更改语句或联合查询语句等。其中,该代理服务器,还可以用于建立该代理服务器,具体可参见前面的实施例,在此不再赘述。可选的,该数据处理系统还可以包括其他的设备,比如客户端、以及关系型数据库等,例如,具体可以如下:客户端,用于向代理服务器发送数据处理请求。关系型数据库,用于接收代理服务器发送的据处理请求,并根据该数据处理请求进行处理,比如,如果该数据处理请求为插入语句,则进行插入操作;如果该数据处理请求为查询语句,则进行查询操作;如果该数据处理请求为联合查询(join)语句,则进行联合查询操作,等等。该关系型数据库,还可以用于返回相应的数据处理结果给应用服务器。则此时,代理服务器,还可以用于接收关系型数据库发送的数据处理结果,并将该数据处理结果发送给客户端。该客户端,还可以用于接收代理服务器返回的数据处理结果,比如插入结果或查询结果,等等。以上各个设备的具体实施可参见前面的实施例,在此不再赘述。由于该数据处理系统可以包括本发明实施例所提供的任一种数据处理装置,因此,可以实现本发明实施例所提供的任意一种数据处理装置所能实现的有益效果,具体可参见前面的实施例,在此不再赘述。实施例八、本发明实施例还提供一种服务器,具体可以为代理服务器,如图6所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:该服务器可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、射频(RadioFrequency,RF)电路603、电源604、输入单元605、以及显示单元606等部件。本领域技术人员可以理解,图6中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:处理器601是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。RF电路603可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器601处理;另外,将涉及上行的数据发送给基站。通常,RF电路603包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,LowNoiseAmplifier)、双工器等。此外,RF电路603还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,GlobalSystemofMobilecommunication)、通用分组无线服务(GPRS,GeneralPacketRadioService)、码分多址(CDMA,CodeDivisionMultipleAccess)、宽带码分多址(WCDMA,WidebandCodeDivisionMultipleAccess)、长期演进(LTE,LongTermEvolution)、电子邮件、短消息服务(SMS,ShortMessagingService)等。服务器还包括给各个部件供电的电源604(比如电池),优选的,电源604可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源604还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。该服务器还可包括输入单元605,该输入单元605可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元605可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器601,并能接收处理器601发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元605还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。该服务器还可包括显示单元606,该显示单元606可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元606可包括显示面板,可选的,可以采用液晶显示器(LCD,LiquidCrystalDisplay)、有机发光二极管(OLED,OrganicLight-EmittingDiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器601以确定触摸事件的类型,随后处理器601根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图6中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。尽管未示出,服务器还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:接收客户端发送的数据处理请求,该数据处理请求携带分片字段;根据该数据处理请求获取预设的路由表,该路由表保存有关系型数据库的结构信息,该关系型数据库包括多个子库,该子库包括多个分表,该多个分表之间存在外键关联关系,该分表包括多个分片;根据该分片字段和路由表确定目标子库;将该数据处理请求发送给该目标子库,以便该目标子库根据该数据处理请求进行处理。其中,该数据处理请求可以包括多种SQL语句,比如,具体可以为关系型数据库的插入语句、查询语句、删除语句、更改语句或联合查询语句等。其中,该关系型数据库可以由维护人员预先进行建立,或者,也可以由系统自行进行建立,即处理器601还可以实现如下功能:接收客户端发送的关系型数据库的建表语句,该建表语句指示需要建立的分表名称;对该建表语句进行语法分析,以确定该建表语句中是否指定了分片字段的字段名,若是,则建立该分表名称与字段名之间的关联关系,将该关联关系记录到预设的路由表中,并将该建表语句发送给关系型数据库,以进行建表操作;若否,则拒绝该建表语句。此外,可选的,该方案还可以支持单后端事务,即该处理器601还可以实现如下功能:判断该数据处理请求所对应的关系型数据库是否与上一条数据处理请求所对应的关系型数据库一致;若一致,才执行根据该数据处理请求获取预设的路由表的步骤,否则,若不一致,则拒绝该数据处理请求。以上各个操作的具体实施可参见前面的实施例,在此不再赘述。由上可知,本实施例的服务器在接收到客户端发送的数据处理请求后,可以根据该数据处理请求获取预设的路由表,其中,该路由表保存有关系型数据库的结构信息,(该关系型数据库包括多个子库,该子库包括多个分表,这些多个分表之间存在外键关联关系,该分表包括多个分片),然后,根据该数据处理请求中携带的分片字段和该路由表确定目标子库,并将该数据处理请求发送给该目标子库,以便该目标子库根据数据处理请求进行处理;由于在该方案中,子库和分表的路由无需客户端来查找,因此,用户无需知晓各个子库和分表之间的逻辑,也就是说,从用户的角度看,就只是一个关系型数据库,所以,相对于现有技术需要有特定的应用程序来管理分库分表及其路由规则的方案而言,该方案只需在代理层设置简单的路由即可,实现较为简单;而且,由于在该方案中,每个子库的多个分表之间均存在外键关联关系,因此,可以有效支持跨表的联合查询(join)等操作,大大改善其性能。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。以上对本发明实施例所提供的一种基于关系型数据库的数据处理方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1