一种数据操作的优化方法、装置、系统、设备和存储介质制造方法及图纸

技术编号:22000043 阅读:32 留言:0更新日期:2019-08-31 05:21
本发明专利技术实施例公开了一种数据操作的优化方法、装置、系统、设备和存储介质。其中,该方法包括:确定当前启动的数据库事务中的目标SQL操作语句,该目标SQL操作语句为数据库事务中第一条写操作对应的SQL操作语句;将目标SQL操作语句之前的第一SQL操作语句分发给备份数据库,将目标SQL操作语句和目标SQL操作语句之后的第二SQL操作语句分发给主数据库。本发明专利技术实施例提供的技术方案,由备份数据库执行第一SQL操作语句,该数据库事务未对任一数据进行更改,使得客户端访问备份数据库与访问主数据库的数据一致,由主数据库执行目标SQL操作语句和第二SQL操作语句,实现数据库事务中读写操作的分离处理,提高数据读取的准确性。

An Optimal Method, Device, System, Equipment and Storage Media for Data Operation

【技术实现步骤摘要】
一种数据操作的优化方法、装置、系统、设备和存储介质
本专利技术实施例涉及数据库处理领域,尤其涉及一种数据操作的优化方法、装置、系统、设备和存储介质。
技术介绍
在数据库中,结构化查询语言(StructuredQueryLanguage,SQL)是一种为数据库建立的操作命令集,其中包括读操作和写操作;为了提高数据库中数据的读写效率,通常通过主数据库和备份数据库采用数据读写分离的方式来读写数据库中的数据。目前客户端在执行数据库事务时,首先判断该数据库事务对应的SQL操作语句中存在的操作类型,如果仅存在读操作,则通过备份数据库执行该SQL操作语句;若存在写操作,则通过主数据库执行数据库事务中的全部SQL操作语句。由于主数据库更新某一操作数据后,备份数据库也需要更新对应的操作数据,以保证主数据库与备份数据库的数据一致性,此时备份数据库的数据更新相比于主数据库存在一定延迟,因此如果一个数据库事务中对应的SQL语句中存在读写两种操作,为了避免在备份数据库上执行读操作时可能读取到未更新的数据,则只能在主数据库上执行,如一个存储过程语句块中既包含读操作也包含写操作,则会被简单归为写操作语句,整个语句块只会在主数据库上执行,不能将语句块中的部分读操作分配到备份数据库上执行。目前的读写分离方案中,备份数据库只能执行数据库事务中仅存在读操作的SQL操作语句,无法执行在读写混合的数据库事务中的读操作对应的SQL操作语句,否则无法保证数据读取的准确性。
技术实现思路
本专利技术实施例提供了一种数据操作的优化方法、装置、系统、设备和存储介质,保证在备份数据库与主数据库上访问数据的一致性,提高数据读取的准确性。第一方面,本专利技术实施例提供了一种数据操作的优化方法,该方法包括:确定当前启动的数据库事务中的目标结构化查询语言SQL操作语句,所述目标SQL操作语句为所述数据库事务中第一条写操作对应的SQL操作语句;将所述目标SQL操作语句之前的第一SQL操作语句分发给备份数据库,将所述目标SQL操作语句和所述目标SQL操作语句之后的第二SQL操作语句分发给主数据库,以使所述备份数据库执行所述第一SQL操作语句,所述主数据库执行所述目标SQL操作语句和所述第二SQL操作语句。第二方面,本专利技术实施例提供了一种数据操作的优化装置,该装置包括:目标语句确定模块,用于确定当前启动的数据库事务中的目标结构化查询语言SQL操作语句,所述目标SQL操作语句为所述数据库事务中第一条写操作对应的SQL操作语句;语句分发模块,用于将所述目标SQL操作语句之前的第一SQL操作语句分发给备份数据库,将所述目标SQL操作语句和所述目标SQL操作语句之后的第二SQL操作语句分发给主数据库,以使所述备份数据库执行所述第一SQL操作语句,所述主数据库执行所述目标SQL操作语句和所述第二SQL操作语句。第三方面,本专利技术实施例提供了一种数据库系统,该数据库系统包括:主数据库和备份数据库;所述备份数据库执行客户端分发的当前启动的数据库事务中目标SQL操作语句之前的第一SQL操作语句,所述目标SQL操作语句为所述数据库事务中第一条写操作对应的SQL操作语句;所述主数据库执行所述客户端分发的所述数据库事务中的目标SQL操作语句和所述目标SQL操作语句之后的第二SQL操作语句。第四方面,本专利技术实施例提供了一种数据操作的优化系统,该系统包括:客户端和第三方面中所述的数据库系统;所述客户端将当前启动的数据库事务中目标SQL操作语句之前的第一SQL操作语句分发给备份数据库,将所述数据库事务中的目标SQL操作语句和所述目标SQL操作语句之后的第二SQL操作语句分发给主数据库,所述目标SQL操作语句为所述数据库事务中第一条写操作对应的SQL操作语句。第五方面,本专利技术实施例提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所述的数据操作的优化方法。第六方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术任意实施例所述的数据操作的优化方法。本专利技术实施例提供了一种数据操作的优化方法、装置、系统、设备和存储介质,客户端将当前启动的数据库事务中在第一条写操作对应的目标SQL操作语句之前的第一SQL操作语句分发给备份数据库,此时第一SQL操作语句均为读操作,由备份数据库执行第一SQL操作语句来读取对应的操作数据,此时该数据库事务未对任一数据进行更改,使得客户端访问备份数据库与访问主数据库的数据一致,同时将该数据库事务中的目标SQL操作语句和在目标SQL操作语句之后的第二SQL操作语句分发给主数据库,此时目标SQL操作语句和第二SQL操作语句中可能存在写操作和读操作两种,由主数据库执行目标SQL操作语句和第二SQL操作语句来得到对应的执行结果,实现数据库事务中读写操作的分离处理,使得通过主数据库能够读取执行该数据库事务后已修改的操作数据,提高数据读取的准确性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1A为本专利技术实施例一提供的一种数据操作的优化方法的流程图;图1B为本专利技术实施例一提供的数据操作的优化过程的原理示意图;图2A为本专利技术实施例二提供的一种数据操作的优化方法的流程图;图2B为本专利技术实施例二提供的数据操作的优化过程的原理示意图;图3为本专利技术实施例三提供的一种数据操作的优化装置的结构示意图;图4A为本专利技术实施例四提供的一种数据库系统的原理示意图;图4B为本专利技术实施例四提供的通过数据库系统执行数据操作的优化方法的流程图;图5为本专利技术实施例五提供的一种数据操作的优化系统的结构示意图;图6为本专利技术实施例六提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。实施例一图1A为本专利技术实施例一提供的一种数据操作的优化方法的流程图,本实施例可适用于任一种数据库中实现数据读写分离的情况中。本实施例提供的一种数据操作的优化方法可以由本专利技术实施例提供的数据操作的优化装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的设备中,在本实施例中执行本方法的设备可以是平板电脑、台式机和笔记本等任意一种承载有数据库应用的智能终端。具体的,参考图1A,该方法可以包括如下步骤:S110,确定当前启动的数据库事务中的目标SQL操作语句。具体的,为了保证数据库即使在异常状态下仍能保持数据一致,且防止多个数据库访问操作下的相互干扰,数据库通常通过一个数据库事务来执行对应的多个操作;数据库事务是数据库执行过程中的一个逻辑单位,具备原子性、一致性、隔离性和持久性四个特性,如图1B所示,数据库事务由一个有限的数据库操作序列构成,该数据库操作序列中包含了对数据库中不同数据对象或操作数据的读写操作;此时数据库事务中包含的每一数据库操作(读/本文档来自技高网...

【技术保护点】
1.一种数据操作的优化方法,其特征在于,包括:确定当前启动的数据库事务中的目标结构化查询语言SQL操作语句,所述目标SQL操作语句为所述数据库事务中第一条写操作对应的SQL操作语句;将所述目标SQL操作语句之前的第一SQL操作语句分发给备份数据库,将所述目标SQL操作语句和所述目标SQL操作语句之后的第二SQL操作语句分发给主数据库,以使所述备份数据库执行所述第一SQL操作语句,所述主数据库执行所述目标SQL操作语句和所述第二SQL操作语句。

【技术特征摘要】
1.一种数据操作的优化方法,其特征在于,包括:确定当前启动的数据库事务中的目标结构化查询语言SQL操作语句,所述目标SQL操作语句为所述数据库事务中第一条写操作对应的SQL操作语句;将所述目标SQL操作语句之前的第一SQL操作语句分发给备份数据库,将所述目标SQL操作语句和所述目标SQL操作语句之后的第二SQL操作语句分发给主数据库,以使所述备份数据库执行所述第一SQL操作语句,所述主数据库执行所述目标SQL操作语句和所述第二SQL操作语句。2.根据权利要求1所述的方法,其特征在于,在将所述目标SQL操作语句之前的第一SQL操作语句分发给备份数据库之后,还包括:接收所述备份数据库根据所述第一SQL操作语句读取的操作数据,并转发给所述主数据库。3.根据权利要求1所述的方法,其特征在于,还包括:根据所述主数据库对所述数据库事务的提交响应,同步向所述主数据库和所述备份数据库发送所述数据库事务的提交完成通知,以使所述主数据库和所述备份数据库在对应的全局活动事务链表中删除所述数据库事务。4.一种数据库系统,其特征在于,包括:主数据库和备份数据库;所述备份数据库执行客户端分发的当前启动的数据库事务中目标SQL操作语句之前的第一SQL操作语句,所述目标SQL操作语句为所述数据库事务中第一条写操作对应的SQL操作语句;所述主数据库执行所述客户端分发的所述数据库事务中的目标SQL操作语句和所述目标SQL操作语句之后的第二SQL操作语句。5.根据权利要求4所述的数据库系统,其特征在于,所述备份数据库还用于:向所述客户端发送通过执行所述第一SQL操作语句对应...

【专利技术属性】
技术研发人员:郭振岗韩朱忠
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1