【技术实现步骤摘要】
数据库操作方法及装置
本申请涉及数据库
,尤其涉及一种数据库操作方法及装置。
技术介绍
数据库事务(DatabaseTransaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。一个事务由一系列数据库操作指令构成,例如语句。在数据库操作中,为了保证并发读取数据的正确性,提出了事务隔离级别的概念。在标准结构化查询语言(StructuredQueryLanguage,SQL)规范中,定义了4个事务隔离级别,其中,读已提交(ReadCommitted)是多数应用程序优选考虑的隔离级别,它可以避免脏读取,而且具有较好的并发性能,但仍会遇到不可重复读的问题。对于读已提交隔离级别事务面临的不可重复读问题,可以通过forupdate语句临时性的提升读已提交隔离级别事务中某个数据的隔离级别,以保证该数据可重复读取,但这会严重降低系统的并发性能,导致执行效率较低,事务吞吐量较低。
技术实现思路
本申请的多个方面提供一种数据库操作方法及装置,用以保证数据库系统的并发性能,提高事务执行效率并增大事务吞吐量。本申请的一方面,提供一种数据库操作方法,包括:在应用服务器执行目标事务的过程中,依次获取所述应用服务器执行到的所述目标事务中的数据库操作指令;对所述数据库操作指令进行预测执行,将预测执行结果返回给所述应用服务器以供所述应用服务器确定下一个需要执行的数据库操作指令,并在本地记录所述数据库操作指令以及在所述数据库操作指令属于修改数据库类指令和被加锁的非修改数据库类指令其中之一时记录所述预测执行产生的预测执行数据;当获取到所述目 ...
【技术保护点】
一种数据库操作方法,其特征在于,包括:在应用服务器执行目标事务的过程中,依次获取所述应用服务器执行到的所述目标事务中的数据库操作指令;对所述数据库操作指令进行预测执行,将预测执行结果返回给所述应用服务器以供所述应用服务器确定下一个需要执行的数据库操作指令,并在本地记录所述数据库操作指令以及在所述数据库操作指令属于修改数据库类指令和被加锁的非修改数据库类指令其中之一时记录所述预测执行产生的预测执行数据;当获取到所述目标事务中的事务提交指令时,根据本地记录的所述数据库操作指令以及所述预测执行数据,控制所述应用服务器对应的数据库实际执行所述目标事务。
【技术特征摘要】
1.一种数据库操作方法,其特征在于,包括:在应用服务器执行目标事务的过程中,依次获取所述应用服务器执行到的所述目标事务中的数据库操作指令;对所述数据库操作指令进行预测执行,将预测执行结果返回给所述应用服务器以供所述应用服务器确定下一个需要执行的数据库操作指令,并在本地记录所述数据库操作指令以及在所述数据库操作指令属于修改数据库类指令和被加锁的非修改数据库类指令其中之一时记录所述预测执行产生的预测执行数据;当获取到所述目标事务中的事务提交指令时,根据本地记录的所述数据库操作指令以及所述预测执行数据,控制所述应用服务器对应的数据库实际执行所述目标事务。2.根据权利要求1所述的方法,其特征在于,所述在所述数据库操作指令属于修改数据库类指令和被加锁的非修改数据库类指令其中之一时记录所述预测执行产生的预测执行数据,包括:在所述数据库操作指令属于被加锁的非修改数据库类指令时,仅记录所述数据库操作指令所操作的数据的主键ID和版本号作为所述预测执行数据。3.根据权利要求1所述的方法,其特征在于,还包括:在所述应用服务器执行所述目标事务之前,配置所述数据库为读已提交隔离级别。4.根据权利要求1所述的方法,其特征在于,所述对所述数据库操作指令进行预测执行,包括:若所述数据库操作指令属于修改数据库类指令,在本地创建的内存库中模拟所述数据库操作指令的数据环境,基于所述模拟的数据环境对所述数据库操作指令进行预测执行;若所述数据库操作指令属于非修改数据库类指令,在所述数据库中执行所述数据库操作指令,以对所述数据库操作指令进行预测执行。5.根据权利要求4所述的方法,其特征在于,所述在本地创建的内存库中模拟所述数据库操作指令所需的数据环境,基于所述模拟的数据环境对所述数据库操作指令进行预测执行,包括:将所述数据库操作指令拆分为读指令和写指令;在所述数据库中执行所述读指令以获取读数据集,将所述读数据集存入所述内存库中以模拟所述数据库操作指令的数据环境;在所述内存库中执行所述写指令以修改所述读数据集。6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据本地记录的所述数据库操作指令以及所述预测执行数据,控制所述应用服务器对应的数据库实际执行所述目标事务,包括:向所述数据库下发本地记录的所述数据库操作指令,以指示所述数据库执行所述数据库操作指令,并接收所述数据库返回的所述数据库操作指令的实际执行结果;若所述实际执行结果与所述预测执行结果相同,向所述数据库下发所述事务提交指令,以供所述数据库提交所述目标事务;若所述实际执行结果与所述预测执行结果不相同,向所述数据库下发事务回滚指令,以供所述数据库回滚所述目标事务。7.一种数据库操作方法,其特征在于,包括:在应用服务器执行目标事务的过程中,依次获取所述应用服务器执行到的所述目标事务中的数据库操作指令;对所述数据库操作指令进行预测执行,将预测执行结果返回给所述应用服务器以供所述应用服务器确定下一个需要执行的数据库操作指令,并在本地记录所述数据库操作指令以及在所述数据库操作指令属于被加锁的非修改数据库类指令时记录所述预测执行产生的预测执行数据;当获取到所述目标事务中的事务提交指令时,根据本地记录的所述...
【专利技术属性】
技术研发人员:王晶昱,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。