数据库操作方法、装置及系统与流程

文档序号:11216351阅读:492来源:国知局
本申请涉及数据库
技术领域
:,尤其涉及一种数据库操作方法、装置及系统。
背景技术
::在大数据应用场景中,数据库中的数据表(table)一般分为分区表和非分区表两种;分区表优先以时间作为分区维度,并且可以有多个分区。通过分区表可以把数据进行合理的分散,这样在执行查询操作时只需针对部分分区进行扫描即可,不需要对数据表中所有的数据都进行扫描,有利于提高查询效率。技术实现要素:如图1所示,是现有技术中客户端访问数据库的系统架构图。图1所示数据库b包括t1、t2、以及t3三张数据表,t1和t2为分区表,p1是t1中的一个分区,p2是t2中的一个分区;t3是非分区表,c1是t3中的实例,涉及某个字段。其中,客户端a访问数据库b的流程如下:步骤1:客户端a通过java数据库连接(javadatabaseconnectivity,jdbc)或开放数据库连接(opendatabaseconnectivity,odbc)等接口协议,与数据库b建立连接;步骤2:客户端a将结构化查询语言(structuredquerylanguage,sql)语句发送至数据库b;步骤3:数据库b根据收到的sql语句执行相应操作,并向客户端a返回操作结果。如果客户端a收到数据库b返回的正常结果,则数据库访问流程结束;如果客户端a未能收到数据库b返回的正常结果,则重复执行上述步骤2-3,直到完成或者重试超过设定时长或者次数最终失败。另外,在数据库中,为了保证数据的一致性和完整性,一般会使用锁机制。如果对数据库进行插入操作,需要锁定表排它锁,或者如果表中有分区则需要锁定表中关联分区的排它锁。如果对数据库进行更新操作,则需要锁定的是行排它锁。排它锁的使用可以保证数据的一致性和完整性,同时也会对后面的插入、更新或删除操作造成不利影响,即后面的插入、更新或删除操作需要等待前面相应操作的排它锁,整体执行效率比较慢,而且使用排它锁还会对后续查询操作造成堵塞,影响查询效率。那么如何在使用排它锁的情况下,提高数据库操作的整体执行效率,是数据库领域有待解决的一大问题。针对上述技术问题,本申请发明人提供一种解决方案,核心原理是:针对涉及分区表的数据库操作,按需动态调整分区表的分区粒度,使得分区粒度与数据库操作所影响的数据范围尽量匹配,使得排它锁仅需锁定必要的数据,降低前后操作在数据范围上的关联性,进而降低后续操作等待前面操作的概率,提高整体的执行效率。基于上述,本申请实施例提供一种数据库操作方法,包括:根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库;指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。在一可选实施方式中,所述根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度,包括:若所述分区表处理需求为分区细化需求,则细化所述待操作分区表的分区粒度。在一可选实施方式中,所述细化所述待操作分区表的分区粒度,包括:缩小所述待操作分区表的至少一个已有分区维度的粒度,以细化所述待操作分区表中的分区;和/或,为所述待操作分区表增加新的分区维度,以细化所述待操作分区表中的分区。在一可选实施方式中,所述根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度,还包括:若所述分区表处理需求为分区合并需求,则合并所述待操作分区表中的分区。在一可选实施方式中,所述合并所述待操作分区表中的分区,包括:增大所述待操作分区表的至少一个已有分区维度的粒度,以合并所述待操作分区表中的分区;和/或,合并所述待操作分区表的至少两个已有分区维度,以合并所述待操作分区表中的分区。在一可选实施方式中,所述根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求,包括:根据所述待处理数据库操作信息中的表标识,确定所述待操作分区表;根据所述待处理数据库操作信息中的待操作数据、操作类型和/或分区表处理参数,确定所述分区表处理需求。在一可选实施方式中,所述根据所述待处理数据库操作信息中的待操作数据和操作类型,确定所述分区表处理需求,包括:若所述操作类型为更新、插入或删除,且所述待操作数据的热度符合设定的热度条件,则确定所述分区表处理需求为分区细化需求;若所述操作类型为查询,或所述待操作数据的热度不符合设定的热度条件,则确定所述分区表处理需求为分区合并需求。在一可选实施方式中,所述将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库,包括:根据所述数据库当前正在执行的数据库操作语句,统计所述数据库的运行状态;若所述运行状态满足设定的运行要求,将所述数据库操作语句提交至所述数据库。在一可选实施方式中,所述指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句,包括:将所述待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内;指示所述数据库在所述相应分区内,执行所述数据库操作语句。在一可选实施方式中,所述将所述待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内,包括:获取所述待操作数据的唯一标识;在所述分区粒度调整后的分区表的最低级别的分区维度下,计算所述唯一标识的哈希值;将所述待操作数据,映射到所述哈希值对应的分区内。在一可选实施方式中,所述获取所述待操作数据的唯一标识,包括:获取所述待操作数据的单一主键,作为所述唯一标识;或者,计算所述待操作数据的联合主键的md5值,作为所述唯一标识。在一可选实施方式中,所述根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求之前,还包括:接收缓存装置推送的通知消息,所述缓存装置用于缓存使用所述数据库的各客户端提交的数据库操作信息;根据所述通知消息,从所述缓存装置中读取所述待处理数据库操作信息。相应地,本申请实施例还提供一种数据库操作装置,包括:确定单元,用于根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;调整单元,用于根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;提交单元,用于将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库;指示单元,用于指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。在一可选实施方式中,所述调整单元包括:细化子单元,用于在所述分区表处理需求为分区细化需求时,细化所述待操作分区表的分区粒度。在一可选实施方式中,所述细化子单元具体用于:缩小所述待操作分区表的至少一个已有分区维度的粒度,以细化所述待操作分区表中的分区;和/或,为所述待操作分区表增加新的分区维度,以细化所述待操作分区表中的分区。在一可选实施方式中,所述调整单元还包括:合并子单元,用于在所述分区表处理需求为分区合并需求时,合并所述待操作分区表中的分区。在一可选实施方式中,所述合并子单元具体用于:增大所述待操作分区表的至少一个已有分区维度的粒度,以合并所述待操作分区表中的分区;和/或,合并所述待操作分区表的至少两个已有分区维度,以合并所述待操作分区表中的分区。在一可选实施方式中,所述确定单元包括:分区表确定子单元,用于根据所述待处理数据库操作信息中的表标识,确定所述待操作分区表;处理需求确定子单元,用于根据所述待处理数据库操作信息中的待操作数据、操作类型和/或分区表处理参数,确定所述分区表处理需求。在一可选实施方式中,所述处理需求确定子单元具体用于:若所述操作类型为更新、插入或删除,且所述待操作数据的热度符合设定的热度条件,确定所述分区表处理需求为分区细化需求;若所述操作类型为查询,或所述待操作数据的热度不符合设定的热度条件,确定所述分区表处理需求为分区合并需求。在一可选实施方式中,所述提交单元具体用于:根据所述数据库当前正在执行的数据库操作语句,统计所述数据库的运行状态;若所述运行状态满足设定的运行要求,将所述数据库操作语句提交至所述数据库。在一可选实施方式中,所述指示单元包括:映射子单元,用于将所述待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内;指示子单元,用于指示所述数据库在所述相应分区内,执行所述数据库操作语句。在一可选实施方式中,所述映射子单元具体用于:获取所述待操作数据的唯一标识;在所述分区粒度调整后的分区表的最低级别的分区维度下,计算所述唯一标识的哈希值;将所述待操作数据,映射到所述哈希值对应的分区内。在一可选实施方式中,所述映射子单元具体用于:获取所述待操作数据的单一主键,作为所述唯一标识;或者,计算所述待操作数据的联合主键的md5值,作为所述唯一标识。在一可选实施方式中,所述数据库操作装置还包括:接收单元,用于接收缓存装置推送的通知消息,所述缓存装置用于缓存使用所述数据库的各客户端提交的数据库操作信息;获取单元,用于根据所述通知消息,从所述缓存装置中读取所述待处理数据库操作信息。相应地,本申请实施例还提供一种数据库操作系统,包括:数据库以及与所述数据库连接的数据库操作装置;所述数据库操作装置,用于根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;将所述待处理数据库操作信息对应的数据库操作语句提交至所述数据库;以及指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句;所述数据库,用于接收所述数据库操作装置提交的所述数据库操作语句,并根据所述数据库操作装置的指示,在所述分区粒度调整后的分区表中执行所述数据库操作语句。在一可选实施方式中,所述数据库系统还包括:缓存装置,与所述数据库操作装置连接,用于缓存使用所述数据库的各客户端提交的数据库操作信息,以及在有数据库操作信息到来时向所述数据库操作装置推送通知消息;所述数据库操作装置还用于:接收所述缓存装置推送的所述通知消息,根据所述通知消息,从所述缓存装置中读取所述待处理数据库操作信息。本申请实施例还提供一种电子设备,包括存储器和处理器;所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现以下步骤;根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库;指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。本申请实施例提供了一种计算机存储介质,用于储存上述实施例提供的数据库操作装置所用的计算机软件指令,其包含用于执行上述实施例提供的数据库操作方法为上述实施例提供的数据库操作装置所涉及的程序。在本申请实施例中,针对涉及分区表的数据库操作,按需动态调整分区表的分区粒度,使得分区粒度与数据库操作所影响的数据范围尽量匹配,使得排它锁仅需锁定必要的数据,降低减少前后操作之间在数据范围上的关联性,进而降低后续操作等待前面操作的概率,提高整体的执行效率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为现有技术提供的客户端访问数据库的一种系统架构图;图2为本申请一实施例提供的数据库操作系统的结构示意图;图3为本申请一实施例提供的数据与分区映射过程的示意图;图4为本申请另一实施例提供的数据库操作系统的结构示意图;图5为本申请又一实施例提供的数据库操作方法的流程示意图;图6为本申请又一实施例提供的数据库操作方法的流程示意图;图7为本申请又一实施例提供的数据库操作装置的结构示意图;图8为本申请又一实施例提供的数据库操作装置的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图2为本申请一实施例提供的数据库操作系统的结构示意图。如图2所示,所述系统包括:数据库10以及与数据库10连接的数据库操作装置20。可选地,数据库操作装置20可以通过jdbc或odbc与数据库10建立连接。可选地,在具体实现上,数据库操作装置20可以是优化引擎,但不限于此。数据库10,主要用于按照设定的数据结构来组织、存储和管理数据。在实现结构上,数据库10包括至少一张数据表,所述至少一张数据表被分为分区表和非分区表两类。非分区表主要用于存储一些增长速度缓慢或变动频率较低的数据,例如一些维度字典表,如性别、民族、学历、应用(aplication,app)版本、页面等。分区表主要用于存储增长速度较快或变动频率较高的数据,例如订单数据。当然,可以采用不同的分区维度,进一步将分区表划分为多个分区,例如第一个分区维度是时间,第二个分区维度是行政级别,第三分区维度是地理位置等。通过分区技术可以把数据进行合理地分散,同时在查询的时候只需针对部分分区命中即可,而无需对分区表中的所有数据都进行扫描。图2示出一种数据库10的实现结构,包括t1、t2、以及t3等多张数据表,t1和t2为分区表,p1是t1中的一个分区,p2是t2中的一个分区;t3是非分区表,c1是t3中的实例,涉及某个字段。另外,为了保证数据的一致性和完整性,数据库10支持锁机制。如果是插入(insert)操作,则需要使用排它锁锁定数据表,如果数据表是分区表且有多个分区则需要使用排它锁锁定分区。如果是更新(update)操作,则需要使用排它锁锁定数据行。如果是删除(delete)操作,则需要使用排它锁锁定数据行。排它锁的使用可以保证数据的一致性和完整性,同时也会对后面的插入、更新或删除操作造成不利影响,即后面的插入、更新或删除操作需要等待前面相应操作的排它锁,整体执行效率比较慢,而且使用排它锁还会对后续查询操作造成堵塞,影响查询效率。对现有数据库来说,分区表以及分区表中的分区是在使用之前预先划定的,一旦被划定无法动态改变。本实施例中的数据库10与现有数据库的主要区别在于:支持数据库操作装置20对其内的分区表进行优化操作。相应地,数据库操作装置20还与使用数据库10的各个客户端30连接,主要用于根据各个客户端30的数据库操作信息,优化数据库10中的分区表。根据数据库10的不同,使用数据库10的客户端30也会有所不同。举例说明,以数据库10是电子商务领域的数据库为例,则使用数据库10的客户端30可以是购物类应用的客户端和/或服务器,或者是购物类网站,或者是外卖类应用的客户端和/或服务端等。可选地,本实施例的数据库操作系统可以包括客户端30,也可以不包括客户端30。图2所示系统以包括客户端30为例,但并不限于此。数据库操作装置20对数据库10中的分区表进行优化的过程主要包括:根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;根据分区表处理需求,动态调整待操作分区表的分区粒度;将待处理数据库操作信息对应的数据库操作语句提交至数据库10,以及指示数据库10在分区粒度调整后的分区表中执行数据库操作语句。在本实施例中,为简化描述,将客户端提交的数据库操作信息称为待处理数据库操作信息,将数据库中客户端需要操作的分区表(即待处理数据库操作信息涉及的分区表)称为待操作分区表。相应地,数据库10还需响应数据库操作装置20的操作,主要是指接收数据库操作装置20提交的数据库操作语句,并根据数据库操作装置20的指示,在分区粒度调整后的分区表中执行数据库操作语句。值得说明的是,考虑到非分区表中存储的数据增长速度较慢或者变动频率较低,一般针对非分区表的操作频率也较低,故本实施例重点关注对分区表的优化。由上述分析可见,在本实施例的数据库操作系统中,在使用数据库的客户端与数据库之间增加数据库操作装置,在客户端需要对数据库执行操作时,由数据库操作装置根据客户端的数据库操作信息,确定数据库中的待操作分区表以及分区表处理需求,接着基于分区表处理需求,动态改变待操作分区表的分区粒度,这样可以保证分区粒度与数据库操作所影响的数据范围尽量匹配,使得排它锁仅需锁定必要的数据,降低前后操作在数据范围上的关联性,进而降低后续操作等待前面操作的概率,提高整体的执行效率。在上述实施例或下述实施例中,数据库操作装置20需要根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求。可选地,待处理数据库操作信息包括进行数据库操作所需的各种信息,例如待操作分区表的标识(简称为表标识)、待操作数据、操作类型(例如更新、删除、插入或查询)以及分区字段等。基于上述,数据库操作装置20可以根据待处理数据库操作信息中的表标识,确定待操作分区表,即所述表标识对应的分区表即为待操作分区表。在一种可选实施方式中,数据库操作装置20可以根据待处理数据库操作信息中的待操作数据和操作类型,确定分区表处理需求。可选地,若操作类型为更新、插入或删除,且待操作数据的热度符合设定的热度条件,则数据库操作装置20可以确定分区表处理需求为分区细化需求。根据应用场景或应用需求的不同,热度条件会有所不同。例如,热度条件可以是在指定时间范围内,如最近3天或最近5小时,更新频率大于设定更新频率阈值。基于此,若待操作数据是最近3天或最近5小时内,更新频率大于设定更新频率阈值的数据,并且对该待操作数据的操作类型是更新、删除或插入,则可以确定需要细化待操作数据所在的分区表的分区粒度,即分区细化需求。可选地,若操作类型为查询,或者待操作数据的热度不符合设定的热度条件,则数据库操作装置20可以确定分区表处理需求为分区合并需求。细化分区表的分区粒度,对插入、更新或删除操作有利,但对于查询操作来说,会增加分区扫描数,增加数据聚合操作,导致查询效率下降。对查询操作来说,实际上是分区表中分区的数量越少越好,故可以在操作类型为查询时,确定分区表处理需求为分区合并需求。另外,对于热度较低的数据,对其进行更新或删除操作的频率较低,相反对其进行查询操作的频率会较高,这就要求分区表中分区的数量越少越好,可以将这些数据集中存放到较大的分区内,降低过多分区对查询操作造成的不利影响。因此,对于待操作数据的热度不符合设定的热度条件的情况,可以确定分区表处理需求为分区合并需求。进一步,待处理数据库操作信息还可以包括分区表处理参数,所述分区表处理参数主要体现对表标识所标识的分区表的处理需求。基于此,数据库操作装置20可以根据待处理数据库操作信息中的分区表处理参数,确定分区表处理需求。可选地,该分区表处理参数可以包括执行分区细化操作的时间以及分区细化方式。基于此,数据库操作装置20通过分区表处理参数可以确定对待操作分区表的处理需求是分区细化需求。可选地,该分区表处理参数可以包括执行分区合并操作的时间以及分区合并方式。基于此,数据库操作装置20通过分区表处理参数可以确定对待操作分区表的处理需求是分区合并需求。可选地,该分区表处理参数可以同时包括执行分区细化操作的时间、分区细化方式、在执行分区细化操作之后执行分区合并操作的时间以及分区合并方式。基于此,数据库操作装置20通过分区表处理参数可以确定对待操作分区表的处理需求是先分区细化需求,再分区合并需求。以更新操作为例,所述更新操作可以是实时更新操作或离线更新操作。实时更新操作需保证在数据源头变更之后,能够及时地体现到数据库中。对于离线更新操作的情况,一般是针对历史事件内的大批量数据进行更新,经常发生在数据回溯的场景下。在该场景下,待处理数据库操作信息可以包含分区表处理参数,用于指示数据库操作装置20先执行分区细化操作,再指定时间后执行分区合并操作。在上述实施例或下述实施例中,在确定分区表处理需求之后,数据库操作装置20需根据分区表处理需求,动态调整待操作分区表的分区粒度。可选地,若确定的分区表处理需求为分区细化需求,则数据库操作装置20可以细化待操作分区表的分区粒度;相应地,若确定的分区表处理需求为分区合并需求,则数据库操作装置20可以合并待操作分区表中的分区。其中,数据库操作装置20细化待操作分区表的分区粒度可以采用但不限于以下至少一种实施方式:第一种方式:缩小待操作分区表的至少一个已有分区维度的粒度,以细化待操作分区表中的分区。其中,已有分区维度是指在细化待操作分区表的分区粒度之前,待操作分区表在分区时已经使用的分区维度。优选地,这里的已有分区维度主要是指最开始为待操作分区表划分分区时使用的分区维度。例如,在创建待操作分区表时,利用时间维度划定待操作分区表的分区,此时时间维度的粒度是每年,即每一年的数据存储于一个分区中。该时间维度的粒度较粗,则数据库操作装置20可以缩小时间维度的粒度,细化为每月为一个粒度,即每月的数据存储于一个分区中,这相当于将原来的一个分区进一步细分为12个分区,分区粒度更小了,每个分区内的数据量减小了,这意味着排它锁锁定分区时影响的数据范围减小了。进一步,若待操作分区表的已有分区维度有多个,则数据库操作装置20可以从中选择一个或多个已有分区维度,对每个选择的已有分区维度,进一步缩小其粒度。优选地,分区维度之间具有一定的层级关系,即每个分区维度都有一个分区级别,基于此,数据库操作装置20可以选择待操作分区表的已有分区维度中级别最低的已有分区维度,进一步缩小该级别最低的已有分区维度的粒度。例如,按照级别由高到低的顺序,待操作分区的已有分区维度依次为时间维度和地理区域维度,则可以优先选择地理区域维度,进一步缩小地理区域维度的粒度,例如将原来区域级的粒度(如华北、华南、华中等)缩小至城市级的粒度(如北京、上海、天津等)。第二种方式:为待操作分区表增加新的分区维度,以细化待操作分区表中的分区。其中,新的分区维度是指在细化待操作分区表的分区粒度之前,待操作分区表在分区时尚未使用的分区维度。优选地,可以在级别最低的已有分区维度下,进一步增加新的分区维度。例如,在创建待操作分区表时,利用时间维度划定待操作分区表的分区,此时时间维度的粒度是每年,即每一年的数据存储于一个分区中。基于此,数据库操作装置20可以为待操作分区表增加新的分区维度,例如位置区域维度,即可以将每年的数据进一步按照位置区域划分,每年内不同位置区域的数据存储于一个分区,例如2015年a位置区域内的数据存储于第一分区,2015年b位置区域内的数据存储于第二分区,这相当于将原来的一个分区进一步细分为对应不同位置区域的分区,分区粒度更小了,每个分区内的数据量减小了,这意味着排它锁锁定分区时影响的数据范围减小了。进一步,数据库操作装置20可以为待操作分区表增加一个或多个新的分区维度。若增加多个新的分区维度,则可以按照设定的分区级别依次增加。值得说明的是,数据库操作装置20可以单独采用缩小待操作分区表的已有分区维度的粒度的方式,或者单独采用为待操作分区表增加新的分区维度的方式,或者也可以同时采用两种方式,达到细化待操作分区表的分区粒度的目的。其中,数据库操作装置20合并待操作分区表中的分区可以采用但不限于以下至少一种实施方式:第一种方式:增大待操作分区表的至少一个已有分区维度的粒度,以合并待操作分区表中的分区。其中,已有分区维度是指在合并待操作分区表中的分区之前,待操作分区表在分区时已经使用的分区维度。优选地,这里的已有分区维度主要是指最开始为待操作分区表划分分区时使用的分区维度。例如,在合并待操作分区表中的分区之前,利用时间维度划定待操作分区表的分区,此时时间维度的粒度是每月,即每月的数据存储于一个分区中。数据库操作装置20可以增大时间维度的粒度,增大为每年为一个粒度,即每年的数据存储于一个分区中,这相当于将原来的12个分区合并为一个分区,分区粒度变大了,每个分区内的数据量增大了。第二种方式:合并待操作分区表的至少两个已有分区维度,以合并待操作分区表中的分区。其中,已有分区维度是指在合并待操作分区表中的分区之前,待操作分区表在分区时已经使用的分区维度。可选地,这里的已有分区维度可以在细化待操作分区表的分区粒度时增加的分区维度。例如,在合并待操作分区表中的分区之前,利用时间维度和地理区域维度划分待操作分区表的分区,且时间维度的分区级别高于地理区域的分区级别。数据库操作装置20可以将地理区域维度和时间维度合并为一个维度,例如合并为时间维度,这相当于将原来不同地理区域对应的分区合并为一个时间维度的分区,分区粒度变大了,每个分区内的数据量增大了。优选地,数据库操作装置20在合并待操作分区表的至少两个已有分区维度时,若至少两个已有分区维度的分区级别不同,可以将较低分区级别的分区维度合并到较高分区级别的分区维度中,换句话说,可以拿掉较低分区级别的分区维度,仅保留较高分区级别的分区维度。在上述实施例或下述实施例中,在动态调整待操作分区表的分区粒度之后,数据库操作装置20需将待处理数据库操作信息对应的数据库操作语句提交至数据库10。所述数据库操作语句可以是结构化查询语言(structuredquerylanguage,sql)语句,但不限于此。可选地,数据库操作装置20可以根据待处理数据库操作信息,拼接生成sql语句。可选地,数据库操作装置20可以统筹对数据库10所有的操作,不像现有技术中使用数据库10的客户端30那样彼此对数据库10的操作都是独立的,所以数据库操作装置20可以清楚的知道数据库10当前正在执行的数据库操作语句,进而可以根据数据库10当前正在执行的数据库操作语句,统计数据库10的运行状态,例如是否有延迟,吞吐量是否过高等;然后,可以根据数据库10的运行状态,适应性地向数据库10提交数据库操作语句。例如,若数据库10的运行状态满足设定的运行要求,例如吞吐量低于设定的吞吐量阈值和/或者响应延迟时间低于设定的延迟时间阈值,则可以将数据库操作语句提交至数据库10。反之,若数据库10的运行状态不满足设定的运行要求,例如吞吐量高于或等于设定的吞吐量阈值和/或响应延迟时间高于或等于设定的延迟时间阈值,则可以降低向数据库10提交数据库操作语句的频率,或者可以延迟向数据库10提交数据库操作语句,降低数据库10的处理压力,使得数据库10保持在较佳的处理状态。在上述实施例或下述实施例中,数据库操作装置20除了向数据库10提交数据库操作语句之外,还需指示数据库10在分区粒度调整后的分区表中执行所述数据库操作语句。数据库操作装置20指示数据库10执行数据库操作语句的一种实施方式包括:数据库操作装置20将待处理数据库操作信息中的待操作数据,映射到分区粒度调整后的分区表中的相应分区内;指示数据库10在所述相应分区内,执行所述数据库操作语句。上述将待操作数据映射到分区粒度调整后的分区表中的相应分区内的过程实际上是,在调整待操作分区表的分区粒度之后,对分区表中的分区进行赋值的过程。赋值过程可分为以下两种情况:第一种情况:待操作数据本身有单一主键,例如字段id会有序自增且不重复不为空,故可以作为待操作数据的单一主键。针对具有单一主键的待操作数据,可以获取其单一主键作为唯一标识;在分区粒度调整后的分区表的最低级别的分区维度下,计算该唯一标识的哈希(hash)值,例如可以通过mode%n计算哈希值;将待操作数据映射到所述哈希值对应的分区内。第二种情况:待操作数据本身不具有单一主键,需要通过多个字段联合起来作为联合主键以唯一标识待操作数据,例如第三方平台的菜品id联合第三方平台的编号可作为联合主键。对于具有联合主键的待操作数据,可以获取其联合主键的md5值作为唯一标识;在分区粒度调整后的分区表的最低级别的分区维度下,计算该唯一标识的哈希(hash)值,例如可以通过mode%n计算哈希值;将待操作数据映射到所述哈希值对应的分区内。上述表达式mode%n中,n是已知数,表示最低级别的分区维度下可以包含的分区数量的最大值。n可以根据经验值或者实验预先获得。结合图3所示的分区表示例,对上述映射过程进行说明。图3所示分区表的最低级别的分区维度是mod维度,上一级别的分区维度是时间维度,且时间维度的粒度是天。在图3左侧所示分区表中,由于尚未存储数据,故未出现mod分区,仅有2016年10月10日对应的第一分区,2016年10月11日对应的第二分区,2016年10月12日对应的第三分区。则,当有待操作数据需要映射到某个mod分区下面,可以根据表达式mode%n,计算出待操作数据所在的mod分区,如图3中右侧所示的分区表。在图3右侧的分区表中,第一分区包含两个mod分区,第二分区包含3个mod分区,第三个分区包含3个以上mod分区。由上述可见,通过把上级分区拆分为了多个下级分区,可以减少每个分区的数据量,降低了后续操作与前面操作操作相同分区的概率,同时减少了排它锁锁定的数据量,降低了排它锁对后续操作的不利影响,提高了整体执行效率。图4为本申请另一实施例提供的数据库操作系统的结构示意图。与图2所示系统相比,图3所示系统除了包括:数据库10、与数据库10连接的数据库操作装置20以及客户端30之外,还包括:与数据库操作装置20连接的缓存装置40。缓存装置40位于使用数据库10的各个客户端30与数据库操作装置20之间,可用于缓存各个客户端30提交的数据库操作信息,以在数据库操作装置20执行优化操作过程中,保证数据库操作信息不会丢失。其中,数据库操作装置20与缓存装置40之间,以及客户端30与缓存装置40之间可以采用缓存装置40支持的通信协议建立通信连接。数据库操作装置20可以向缓存装置40预先订阅推送服务。基于此,缓存装置40在接收到客户端30提交的数据库操作信息之后,可以向数据库操作装置20发送通知消息。对数据库操作装置20来说,可以接收缓存装置40推送的通知消息;根据所述通知消息,从缓存装置40中读取待处理数据库操作信息。进一步可选地,缓存装置40可以采用冗余备份存储方式,存储客户端30提交的数据库操作信息,这样可以保证数据库操作信息的可靠性。可选地,在具体实现上,缓存装置40可以为消息中间件,例如可以采用kafka、hbase或apachemq等实现。其中,kafka是一种高吞吐量的分布式发布订阅消息系统。hbase是一个分布式的、面向列的开源数据库。apachemq是一开源的消息中间件。因为缓存装置40的存在,对于客户端30来说,数据库操作由原来的同步方式变为异步方式,不需要等待数据库返回结果,有利于提高客户端30的执行效率。这里的同步方式是指客户端30在提交数据库操作信息之后,只能等待数据库10返回处理结果,只有在接收到数据库10返回的结果后才能执行后续任务。这里的异步方式是指客户端30在提交数据库操作信息之后,不会立即得到数据库10返回的结果,但可以执行后续任务。另外,因为由缓存装置40的存在,结合数据库操作装置20的控制,对客户端30提交的删除、更新、插入或查询操作可以进行缓冲,有利于减轻数据库10的处理负担,提高数据库10的稳定性。基于上述数据库操作系统,本申请又一实施例提供一种数据库操作方法,所述方法的执行主体可以是数据库操作装置,但不限于此。如图5所示,所述方法包括:501、根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求。502、根据分区表处理需求,动态调整待操作分区表的分区粒度。503、将待处理数据库操作信息对应的数据库操作语句提交至待操作分区表所属的数据库。504、指示数据库在所述分区粒度调整后的分区表中执行数据库操作语句。参见步骤501,待处理数据库操作信息主要包括对数据库进行操作所需的信息,一般由使用数据库的客户端提交。即,当客户端需要对数据库执行操作时,可提交数据库操作信息,用于描述对数据库执行操作所需的基本信息,例如需要操作的分区表的标识、分区字段、操作类型、待操作数据等等。根据待处理数据库操作信息,一方面可以知道需要操作的分区表,称之为待操作分区表,另一方面可以知道针对待操作分区表需要进行何种操作,简称为分区表处理需求。参见步骤502,在基于待处理数据库操作信息进行数据库操作之前,可以根据分区表处理需求,动态调整待操作分区表的分区粒度。例如可以细化待操作分区表的分区粒度,或者合并待操作分区表中的分区,以增大待操作分区表的分区粒度。参见步骤503和504,在动态调整待操作分区表的分区粒度之后,将待处理数据库操作信息对应的数据库语句提交至数据库,并指示数据库在分区粒度调整后的分区表中执行所述数据库语句,从而完成数据库操作。在本实施例中,在需要对数据库执行操作时,根据待处理数据库操作信息,确定数据库中的待操作分区表以及分区表处理需求,接着基于分区表处理需求,动态改变待操作分区表的分区粒度,这样可以保证分区粒度与数据库操作所影响的数据范围尽量匹配,使得排它锁仅需锁定必要的数据,降低前后操作在数据范围上的关联性,进而降低后续操作等待前面操作的概率,提高整体的执行效率。图6为本申请又一实施例提供的数据库操作方法的流程示意图。所述方法的执行主体可以是数据库操作装置,但不限于此。如图6所示,所述方法包括:601、接收缓存装置推送的通知消息,所述缓存装置用于缓存使用数据库的各客户端提交的数据库操作信息。602、根据通知消息,从缓存装置中读取待处理数据库操作信息。603、根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求。604、识别分区表处理需求是分区细化需求还是分区合并需求;若所述分区表处理需求是分区细化需求,则执行步骤605;若所述分区表处理需求是分区合并需求,则执行步骤606。605、细化待操作分区表的分区粒度,并继续执行步骤607。606、合并待操作分区表中的分区,并继续执行步骤607。607、将待处理数据库操作信息对应的数据库操作语句提交至待操作分区表所属的数据库,并继续执行步骤608。608、指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。参见步骤601,在本实施例中,通过缓存装置缓冲客户端提交的数据库操作信息。对缓存装置来说,每当接收到客户端提交的数据库操作信息时,向数据库操作装置发出通知消息。可选地,在具体实现上,缓存装置可以为消息中间件,例如可以采用kafka、hbase或apachemq等实现。数据库操作装置接收缓存装置发出的通知消息;当接收到通知消息时,可以从缓存装置中读取待处理数据库操作信息;然后执行步骤603所述的操作,确定待操作分区表以及分区表处理需求。当识别出分区表处理需求为细化分区需求时,执行细化待操作分区表的分区粒度的操作;当识别出分区表处理需求为分区合并需求时,执行合并待操作分区表中的分区的操作。之后,将待处理数据库操作信息对应的数据库操作语句,例如sql语句提交至数据库,并指示数据库在分区粒度调整后的分区表内执行所述数据库操作语句,完成数据库操作。可选地,在执行数据库操作语句之后,数据库可以通过数据库操作装置向客户端返回执行结果。在本实施例中,通过缓存装置缓存客户端提交的数据库操作信息,在数据库操作装置细化待操作分区表的分区粒度或合并待操作分区表中的分区的过程中,可以保证数据库操作信息不会丢失;另外,可以将数据库操作由原来的同步变为异步,有利于提高客户端的执行效率;再者,可以对送入数据库中的操作进行缓冲,有利于减轻数据库的处理负担,提高数据库的稳定性。在一可选实施方式中,步骤605,即细化待操作分区表的分区粒度可以采用以下方式:缩小待操作分区表的至少一个已有分区维度的粒度,以细化待操作分区表中的分区;和/或,为待操作分区表增加新的分区维度,以细化待操作分区表中的分区。有关各方式的详细描述,可参见上述系统实施例中的相应描述,在此不再赘述。在一可选实施方式中,步骤606,即合并待操作分区表中的分区可以采用以下方式:增大待操作分区表的至少一个已有分区维度的粒度,以合并待操作分区表中的分区;和/或,合并待操作分区表的至少两个已有分区维度,以合并待操作分区表中的分区。有关各方式的详细描述,可参见上述系统实施例中的相应描述,在此不再赘述。在一可选实施方式中,步骤501或603,即根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求,包括:根据待处理数据库操作信息中的表标识,确定待操作分区表;根据待处理数据库操作信息中的待操作数据、操作类型和/或分区表处理参数,确定所述分区表处理需求。在一可选实施方式中,可以根据待处理数据库操作信息中的待操作数据和操作类型,确定分区表处理需求。具体的,若所述操作类型为更新、插入或删除,且所述待操作数据的热度符合设定的热度条件,则确定所述分区表处理需求为分区细化需求。若所述操作类型为查询,或所述待操作数据的热度不符合设定的热度条件,则确定所述分区表处理需求为分区合并需求。在上述实施例或下述实施例中,步骤503或607,即将待处理数据库操作信息对应的数据库操作语句提交至待操作分区表所属的数据库,包括:根据数据库当前正在执行的数据库操作语句,统计数据库的运行状态;若运行状态满足设定的运行要求,将数据库操作语句提交至数据库。在一可选实施方式中,步骤504或608,即指示数据库在所述分区粒度调整后的分区表中执行数据库操作语句,包括:将待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内;指示数据库在所述相应分区内,执行所述数据库操作语句。进一步,上述将待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内,包括:获取待操作数据的唯一标识;在所述分区粒度调整后的分区表的最低级别的分区维度下,计算所述唯一标识的哈希值;将所述待操作数据,映射到所述哈希值对应的分区内。更进一步,上述获取待操作数据的唯一标识,包括:获取待操作数据的单一主键,作为唯一标识;或者,计算待操作数据的联合主键的md5值,作为唯一标识。需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤501至步骤503的执行主体可以为设备a;又比如,步骤501和502的执行主体可以为设备a,步骤503和504的执行主体可以为设备b;等等。图7为本申请又一实施例提供的数据库操作装置的结构示意图。如图7所示,数据库操作装置包括:确定单元71、调整单元72、提交单元73以及指示单元74。确定单元71,用于根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求。调整单元72,用于根据确定单元71确定的分区表处理需求,动态调整确定单元71确定的待操作分区表的分区粒度。提交单元73,用于将待处理数据库操作信息对应的数据库操作语句提交至待操作分区表所属的数据库。指示单元74,用于指示数据库在调整单元72进行分区粒度调整后的分区表中执行提交单元73提交的数据库操作语句。在一可选实施方式中,如图8所示,调整单元72的一种实现结构包括:细化子单元721。细化子单元721,用于在分区表处理需求为分区细化需求时,细化待操作分区表的分区粒度。在一可选实施方式中,细化子单元721具体用于:缩小待操作分区表的至少一个已有分区维度的粒度,以细化待操作分区表中的分区;和/或,为待操作分区表增加新的分区维度,以细化待操作分区表中的分区。在一可选实施方式中,如图8所示,调整单元72的一种实现结构还包括:合并子单元722。合并子单元722,用于在分区表处理需求为分区合并需求时,合并待操作分区表中的分区。在一可选实施方式中,合并子单元722具体用于:增大待操作分区表的至少一个已有分区维度的粒度,以合并待操作分区表中的分区;和/或,合并待操作分区表的至少两个已有分区维度,以合并待操作分区表中的分区。在一可选实施方式中,如图8所示,确定单元71的一种实现结构包括:分区表确定子单元711和处理需求确定子单元712。分区表确定子单元711,用于根据待处理数据库操作信息中的表标识,确定所述待操作分区表。处理需求确定子单元712,用于根据待处理数据库操作信息中的待操作数据、操作类型和/或分区表处理参数,确定分区表处理需求。在一可选实施方式中,处理需求确定子单元712具体用于:若操作类型为更新、插入或删除,且待操作数据的热度符合设定的热度条件,确定分区表处理需求为分区细化需求;若操作类型为查询,或待操作数据的热度不符合设定的热度条件,确定分区表处理需求为分区合并需求。在一可选实施方式中,提交单元73具体用于:根据数据库当前正在执行的数据库操作语句,统计数据库的运行状态;若运行状态满足设定的运行要求,将数据库操作语句提交至数据库。在一可选实施方式中,如图8所示,指示单元74的一种实现结构包括:映射子单元741和指示子单元742。映射子单元741,用于将待处理数据库操作信息中的待操作数据,映射到分区粒度调整后的分区表中的相应分区内。指示子单元742,用于指示数据库在所述相应分区内,执行数据库操作语句。在一可选实施方式中,映射子单元741具体用于:获取所述待操作数据的唯一标识;在所述分区粒度调整后的分区表的最低级别的分区维度下,计算唯一标识的哈希值;将待操作数据,映射到所述哈希值对应的分区内。在一可选实施方式中,映射子单元741具体用于:获取待操作数据的单一主键,作为所述唯一标识;或者,计算待操作数据的联合主键的md5值,作为唯一标识。在一可选实施方式中,如图8所示,所述数据库操作装置还包括:接收单元75和获取单元76。接收单元75,用于接收缓存装置推送的通知消息,所述缓存装置用于缓存使用数据库的各客户端提交的数据库操作信息。获取单元76,用于根据接收单元75接收到的通知消息,从缓存装置中读取待处理数据库操作信息。可选地,在具体实现上,上述缓存装置可以为消息中间件,例如可以采用kafka、hbase或apachemq等实现。可选地,本实施例提供的数据库操作装置可以作为优化引擎来实现,但并不限于此。本实施例提供的数据库操作装置,可执行上述方法实施例提供的流程,并且可实现系统实施例中数据库操作装置的所有功能,在此不再赘述,详见前述实施例的描述。本实施例提供的数据库操作装置,可针对涉及分区表的数据库操作,按需动态调整分区表的分区粒度,使得分区粒度与数据库操作所影响的数据范围尽量匹配,使得排它锁仅需锁定必要的数据,降低减少前后操作之间在数据范围上的关联性,进而降低后续操作等待前面操作的概率,提高整体的执行效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。本申请实施例公开a1、一种数据库操作方法,包括:根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库;指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。a2、如a1所述的方法中,所述根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度,包括:若所述分区表处理需求为分区细化需求,则细化所述待操作分区表的分区粒度。a3、如a2所述的方法中,所述细化所述待操作分区表的分区粒度,包括:缩小所述待操作分区表的至少一个已有分区维度的粒度,以细化所述待操作分区表中的分区;和/或为所述待操作分区表增加新的分区维度,以细化所述待操作分区表中的分区。a4、如a1所述的方法中,所述根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度,还包括:若所述分区表处理需求为分区合并需求,则合并所述待操作分区表中的分区。a5、如a4所述的方法中,所述合并所述待操作分区表中的分区,包括:增大所述待操作分区表的至少一个已有分区维度的粒度,以合并所述待操作分区表中的分区;和/或合并所述待操作分区表的至少两个已有分区维度,以合并所述待操作分区表中的分区。a6、如a1所述的方法中,所述根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求,包括:根据所述待处理数据库操作信息中的表标识,确定所述待操作分区表;根据所述待处理数据库操作信息中的待操作数据、操作类型和/或分区表处理参数,确定所述分区表处理需求。a7、如a6所述的方法中,所述根据所述待处理数据库操作信息中的待操作数据和操作类型,确定所述分区表处理需求,包括:若所述操作类型为更新、插入或删除,且所述待操作数据的热度符合设定的热度条件,则确定所述分区表处理需求为分区细化需求;若所述操作类型为查询,或所述待操作数据的热度不符合设定的热度条件,则确定所述分区表处理需求为分区合并需求。a8、如a1-a7任一项所述的方法中,所述将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库,包括:根据所述数据库当前正在执行的数据库操作语句,统计所述数据库的运行状态;若所述运行状态满足设定的运行要求,将所述数据库操作语句提交至所述数据库。a9、如a1-a7任一项所述的方法中,所述指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句,包括:将所述待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内;指示所述数据库在所述相应分区内,执行所述数据库操作语句。a10、如a9所述的方法中,所述将所述待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内,包括:获取所述待操作数据的唯一标识;在所述分区粒度调整后的分区表的最低级别的分区维度下,计算所述唯一标识的哈希值;将所述待操作数据,映射到所述哈希值对应的分区内。a11、如a10所述的方法中,所述获取所述待操作数据的唯一标识,包括:获取所述待操作数据的单一主键,作为所述唯一标识;或者计算所述待操作数据的联合主键的md5值,作为所述唯一标识。a12、如a1-a7任一项所述的方法中,所述根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求之前,还包括:接收缓存装置推送的通知消息,所述缓存装置用于缓存使用所述数据库的各客户端提交的数据库操作信息;根据所述通知消息,从所述缓存装置中读取所述待处理数据库操作信息。本申请实施例还公开b13、一种数据库操作装置,包括:确定单元,用于根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;调整单元,用于根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;提交单元,用于将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库;指示单元,用于指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。b14、如b13所述的装置中,所述调整单元包括:细化子单元,用于在所述分区表处理需求为分区细化需求时,细化所述待操作分区表的分区粒度。b15、如b14所述的装置中,所述细化子单元具体用于:缩小所述待操作分区表的至少一个已有分区维度的粒度,以细化所述待操作分区表中的分区;和/或为所述待操作分区表增加新的分区维度,以细化所述待操作分区表中的分区。b16、如b13所述的装置中,所述调整单元还包括:合并子单元,用于在所述分区表处理需求为分区合并需求时,合并所述待操作分区表中的分区。b17、如b16所述的装置中,所述合并子单元具体用于:增大所述待操作分区表的至少一个已有分区维度的粒度,以合并所述待操作分区表中的分区;和/或合并所述待操作分区表的至少两个已有分区维度,以合并所述待操作分区表中的分区。b18、如b13所述的装置中,所述确定单元包括:分区表确定子单元,用于根据所述待处理数据库操作信息中的表标识,确定所述待操作分区表;处理需求确定子单元,用于根据所述待处理数据库操作信息中的待操作数据、操作类型和/或分区表处理参数,确定所述分区表处理需求。b19、如b18所述的装置中,所述处理需求确定子单元具体用于:若所述操作类型为更新、插入或删除,且所述待操作数据的热度符合设定的热度条件,确定所述分区表处理需求为分区细化需求;若所述操作类型为查询,或所述待操作数据的热度不符合设定的热度条件,确定所述分区表处理需求为分区合并需求。b20、如b13-b19任一项所述的装置中,所述提交单元具体用于:根据所述数据库当前正在执行的数据库操作语句,统计所述数据库的运行状态;若所述运行状态满足设定的运行要求,将所述数据库操作语句提交至所述数据库。b21、如b13-b19任一项所述的装置中,所述指示单元包括:映射子单元,用于将所述待处理数据库操作信息中的待操作数据,映射到所述分区粒度调整后的分区表中的相应分区内;指示子单元,用于指示所述数据库在所述相应分区内,执行所述数据库操作语句。b22、如b21所述的装置中,所述映射子单元具体用于:获取所述待操作数据的唯一标识;在所述分区粒度调整后的分区表的最低级别的分区维度下,计算所述唯一标识的哈希值;将所述待操作数据,映射到所述哈希值对应的分区内。b23、如b22所述的装置中,所述映射子单元具体用于:获取所述待操作数据的单一主键,作为所述唯一标识;或者计算所述待操作数据的联合主键的md5值,作为所述唯一标识。b24、如b13-b19任一项所述的装置,还包括:接收单元,用于接收缓存装置推送的通知消息,所述缓存装置用于缓存使用所述数据库的各客户端提交的数据库操作信息;获取单元,用于根据所述通知消息,从所述缓存装置中读取所述待处理数据库操作信息。本申请实施例还公开c25、一种数据库操作系统,包括:数据库以及与所述数据库连接的数据库操作装置;所述数据库操作装置,用于根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;将所述待处理数据库操作信息对应的数据库操作语句提交至所述数据库;以及指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句;所述数据库,用于接收所述数据库操作装置提交的所述数据库操作语句,并根据所述数据库操作装置的指示,在所述分区粒度调整后的分区表中执行所述数据库操作语句。c26、如c25所述的数据库系统,还包括:缓存装置,与所述数据库操作装置连接,用于缓存使用所述数据库的各客户端提交的数据库操作信息,以及在有数据库操作信息到来时向所述数据库操作装置推送通知消息;所述数据库操作装置还用于:接收所述缓存装置推送的所述通知消息,根据所述通知消息,从所述缓存装置中读取所述待处理数据库操作信息。本申请实施例还公开d27、一种电子设备,包括存储器和处理器;所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现以下步骤;根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库;指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。除d27描述的步骤之外,本申请的电子设备还可用于执行上述a2-a12中任一项所述的步骤。本申请实施例还公开e28、一种计算机存储介质,包括:第一存储指令,用于根据待处理数据库操作信息,确定待操作分区表以及分区表处理需求;第二存储指令,用于根据所述分区表处理需求,动态调整所述待操作分区表的分区粒度;第三存储指令,用于将所述待处理数据库操作信息对应的数据库操作语句提交至所述待操作分区表所属的数据库;第四存储指令,用于指示所述数据库在所述分区粒度调整后的分区表中执行所述数据库操作语句。除e28描述的步骤之外,本申请的计算机存储介质还可用于执行上述a2-a12中任一项所述的步骤。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1