CN108897849B - 一种提升数据库应用性能的方法及终端 - Google Patents
一种提升数据库应用性能的方法及终端 Download PDFInfo
- Publication number
- CN108897849B CN108897849B CN201810689303.7A CN201810689303A CN108897849B CN 108897849 B CN108897849 B CN 108897849B CN 201810689303 A CN201810689303 A CN 201810689303A CN 108897849 B CN108897849 B CN 108897849B
- Authority
- CN
- China
- Prior art keywords
- data interface
- data
- database
- user
- caching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种提升数据库应用性能的方法及终端,用于提高数据库的运行性能及用户的高并发性。本发明实施例方法包括:设置第一数据接口,所述第一数据接口用于将用户在ORM对象‑关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;设置第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至缓存设备中;设置第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至缓存设备中;设置第四数据接口,所述第四数据接口用于从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。
Description
技术领域
本发明涉及数据库应用开发技术领域,尤其涉及一种提升数据库应用性能的方法及终端。
背景技术
数据库应用的运行性能和高并发用户支持是所用数据库应用开发人员必须面对和解决的问题。为大型企业开发的数据库应用通常将系统响应时间和并发用户数作为关键指标衡量系统成功与否。利用现有的技术开发高性能和高并发的应用难度和成本都非常高,很多时候不得不牺牲功能和操作便捷性来换取性能和高并发用户的提升。
目前现有的开发方法中,对数据库的操作(包括查询和更新,更新又包括新增、删除和修改,以下同)都是立即执行的。由于多个数据库操作之间通常都会附带应用的其它操作如用户界面的显示、业务数据的计算、报表或文件的生成、打印等等,这会导致数据表锁定的时间长从而影响数据库性能和并发。
发明内容
本发明实施例提供了一种提升数据库应用性能的方法及终端,用于提高数据库的运行性能及用户的高并发性。
本发明实施例第一方面提高了一种提升数据库应用性能的方法,包括:
设置第一数据接口,所述第一数据接口用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;
设置第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至缓存设备中;
设置第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至缓存设备中;
设置第四数据接口,所述第四数据接口用于从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。
优选的,所述第一数据接口包括:
第五数据接口,所述第五数据接口用于将ORM自动生成的非主从关系数据表的数据库更新操作缓存至缓存设备中;
第六数据接口,所述第六数据接口用于将ORM自动生成的主从关系数据表中主表的数据库更新操作缓存至缓存设备中;
第七数据接口,所述第七数据接口用于将ORM自动生成的主从关系数据表中从表的数据库更新操作缓存至缓存设备中。
优选的,所述用户在调用第三数据接口时,自动创建上下文对象,并在所述上下文对象中分别存储每次的数据查询结果。
优选的,当用户在调用所述第二数据接口缓存对应的数据库操作时,自动将所述数据库操作中的数据参数进行更名,以避免所述数据参数与ORM自动生成的数据库操作中的数据参数同名。
优选的,当用户调用数据接口的所述第一顺序中包括所述第六数据接口和所述第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照所述第一顺序执行完所述第六数据接口缓存的数据库操作时,自动将所述主表的自增长列的值提取并填充到所述缓存设备中所述主表对应的从表数据模型中,清空所述缓存设备中缓存的所述第一顺序;
并按照第二顺序依次执行后续的数据库操作,所述第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口缓存的数据库操作。
优选的,当用户调用第一数据接口时,ORM系统自动保存模型中数据的初始值,并跟踪模型中数据的变化值,以记录下模型中数据的最终值。
本发明实施例第二方面提供了一种提升数据库应用性能的终端,包括:
第一数据接口,所述第一数据接口用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;
第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至缓存设备中;
第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至缓存设备中;
第四数据接口,所述第四数据接口用于从所述缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。
优选的,所述第一数据接口包括:
第五数据接口,所述第五数据接口用于将ORM自动生成的非主从关系数据表的数据库更新操作缓存至缓存设备中;
第六数据接口,所述第六数据接口用于将ORM自动生成的主从关系数据表中主表的数据库更新操作缓存至缓存设备中;
第七数据接口,所述第七数据接口用于将ORM自动生成的主从关系数据表中从表的数据库更新操作缓存至缓存设备中。
优选的,所述第三数据接口包括:
上下文对象,所述上下文对象用于在用户调用所述第三数据接口时,存储对应的数据查询结果。
优选的,所述第四数据接口包括:
清空模块,用于当用户调用数据接口的所述第一顺序中包括所述第六数据接口和所述第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照所述第一顺序执行完所述第六数据接口缓存的数据库操作时,自动将所述主表的自增长列的值提取并填充到所述缓存设备中所述主表对应的从表的数据模型中,清空所述缓存设备中缓存的所述第一顺序;
执行模块,用于按照第二顺序依次执行后续的数据库操作,所述第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口缓存的数据库操作。
本发明实施例还提供了一种计算机装置,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本发明实施例第一方面提供的提升数据库应用性能的方法。
本发明实施例还提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本发明实施例第一方面提供的提升数据库应用性能的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中设置第一数据接口,用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;设置第二数据接口,用于将由用户编写的数据库更新操作缓存至缓存设备中;设置第三数据接口,用于将由用户编写的数据库查询操作缓存至缓存设备中;设置第四数据接口,用于从所述缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。因为用户在调用本发明中的第一、第二或第三数据接口时,是将所有的数据库操作都通过对应的数据接口缓存至缓存设备中,从而使得用户在调用本发明中的第四数据接口时,第四数据接口从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照第一顺序依次执行对数据库的不同操作,从而减少了执行对应的数据库更新操作时对数据表的锁定时间,提高了数据库的响应时间和高并发性。
附图说明
图1为本发明实施例中提升数据库应用性能的方法的一个实施例示意图;
图2为本发明实施例中ORM系统自动跟踪模型状态变化的示意图;
图3为本发明实施例中提升数据库应用性能的方法的另一个实施例示意图;
图4为本发明实施例中提升数据库应用性能的终端的一个实施例示意图。
具体实施方式
本发明实施例提供了一种提升数据库应用性能的方法及终端,用于提高数据库的运行性能及用户的高并发性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有的开发方法中,对数据库的操作(包括查询和更新,更新又包括新增、删除和修改,以下同)都是立即执行的。由于多个数据库操作之间通常都会附带应用的其它操作如用户界面的显示、业务数据的计算、报表或文件的生成、打印等等,这会导致数据表锁定的时间长从而影响数据库性能和并发。下面用一个简单案例来具体说明这种影响。
例1:假设某项功能需完成下面的操作:
1)开始数据库事务
2)更新数据表A,用时10毫秒
3)查询数据表B,用时10毫秒
4)统计第三步的查询结果,用时100毫秒
5)把统计结果显示在用户界面上,用时100毫秒
6)把统计结果写入数据表C,用时10毫秒
7)完成数据库事务
数据库开发人员都清楚为保证数据一致性,数据更新操作时需对数据表进行锁定直到数据库事务完成。上例中数据表A需锁定10+10+100+100+10一共230毫秒,数据表B锁定10毫秒。数据表A锁定期间其它用户无法访问数据表A,由此可见对数据表的锁定是影响数据库性能和并发的最关键因素。目前主流关系型数据库都依赖对数据表的锁定来保证数据的一致性和完整性。
而本发明实施例提供的提升数据库应用性能的方法,可以明显在例1中对数据表A的锁定时间,请参阅图1,本发明实施例中提升数据库应用性能的方法的一个实施例,包括:
101、设置第一数据接口,所述第一数据接口用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;
如用户在数据库中更新(包括新增、删除或修改)一个数据表时,而该数据表是通过ORM模型自动生成的,则可以调用本实施例中的第一数据接口,将用户的该更新操作缓存至缓存设备中,并在对数据库的操作统一结束后,调用本发明实施例中的第四数据接口依次顺执行。
需要说明的是,ORM自动生成的数据库更新操作的生成实际上是在用户调用第四数据接口执行时生成的而非在调用第一数据接口缓存时生成的。故当用户调用第一数据接口对ORM模型自动生成的数据表的更新操作缓存时,ORM系统会自动跟踪模型(Model)的状态变化,以便于ORM系统记录下模型的最新状态,因为ORM系统需根据模型的原始状态和最新状态来生成数据库更新操作。如产品模型(产品A)的价格属性原始值为100,最新值为120,状态为已改变,ORM系统需生成把产品A价格由100改为120的数据库更新操作。因为原始值100和最新值120以外可能存在其它值,如价格由100先改为110再改为120并且价格由原始值100最终会改为多少是无法提前预知的,所以数据库更新操作的生成需在执行时进行,执行时模型的状态为最新状态。因此对ORM自动生成的数据库更新操作的缓存实质需要缓存模型(Model)的原始状态并跟踪缓存后模型状态的变化以便能在执行时能获取模型的最新状态,图2给出了ORM系统自动跟踪模型状态变化的示意图。
此外,ORM模型自动生成的数据表又包括主从关系数据表和非主从关系数据表,主从关系数据表又分为主键是自增长列和非自增长列,对于主从关系表和非注从关系表,在调用第一数据接口中执行缓存后,在第四数据接口中执行数据库更新操作的顺序有所不同,具体在下面的实施例中详细描述,此处不再赘述。
102、设置第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至缓存设备中;
容易理解的是,对数据库中数据表的操作,一部分是通过ORM模型自动生成的,而另一部分可能需要用户自身编写的数据表,而在用户更新自身编写的数据表时,则可以调用本发明实施例中的第二数据接口,以用于对用户自身编写的数据库操作进行缓存,并在用户对数据库的操作统一结束后,调用本发明实施例中的第四数据接口按照预先缓存的顺序依次执行。
因在现有的数据库开发技术中,对于用户自身编写的数据库的更新操作都是立即执行,众所周知,对数据库更新操作的顺序不同,可能导致最终的数据结果完全不同,而本发明中可以对用户自身编写的数据库的更新操作进行缓存,从而实现了ORM模型自动生成的数据库更新操作与用户自编写数据库更新操作之间的自定义顺序,提升了数据库操作的并发性能。
具体的,对用户编写的数据库更新操作的缓存比较简单,只需要缓存与该数据更新操作对应的SQL语句以及执行该SQL语句所需的参数值即可。
需要说明的是,若用户在调用ORM模型自动生成第一数据表之后,又自编写了第二数据表,为了避免第二数据表中的表参数与第一数据表中的表参数同名,而在第四数据接口的批量执行中出现报错的现象,本发明实施例中提供的第二数据接口,在缓存用户自编写数据库的更新操作时,会自动将用户编写的第二数据表中的表参数进行更名,并将未更名前的表参数对应的具体数值赋值给更名后的表参数,如:假设ORM自动生成的数据库更新操作A中包含两个参数分别为p0,p1,用户编写的数据库更新操作B中包含三个参数分别为p0,p1,p2(操作B中的参数由用户手工编写无法提前预知参数的名字),由于操作A和操作B中存在重名的参数p0和p1因此无法在一个批中执行。故第二数据接口会自动把操作B中的表参数统一改名为dev_p0,dev_p1,dev_p2,并把原来p0,p1,p2对应的参数值分别重新对应到dev_p0,dev_p1,dev_p2,从而使得操作B中更名后的表参数名区别于操作A中的表参数名。容易理解的是,第二数据接口在对操作B中的表参数进行更名时,会避开操作A中的表参数名,使得B操作中的表参数名区别于操作A中的表参数名。
103、设置第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至缓存设备中;
数据库查询操作与数据库更新操作最大的不同是数据库查询操作会返回结果且该结果可能需要在后续数据库操作中使用。
本发明实施例中,还提供了第三数据接口,用于缓存用户编写的数据库查询操作,本申请通过调用第三数据接口缓存可执行代码段来缓存数据库的查询操作,同时提供一个上下文(Context)对象来临时存储查询结果,该上下文对象在缓存中的所有数据库操作中共享,其它数据库操作可读取该上下文对象中存储的查询结果。
需要说明的是,若是有多个查询操作,则需要在上下对象中对每次的查询结果进行不同的命名,以区分不同的查询结果,以供在接下来的数据库操作中进行调用。
104、设置第四数据接口,所述第四数据接口用于从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。
如例1所述,通常情况下,某项功能一般都需要在数据库中完成对多个数据表的多种操作,而为了实现对多个数据表的顺序执行,用户在调用第一、第二及第三数据接口后,会在缓存设备中按照用户调用上述一个或多个数据接口的顺序存储对应数据库更新操作的第一顺序,并在用户调用第四数据接口时,第四数据接口从缓存设备的缓存列表中读取用户调用上述一个或多个数据接口的第一顺序,并按照第一顺序将缓存列表转换为执行列表,并自动按照执行列表中的第一顺序依次执行对数据库的更新操作,以完成用户对数据库自定义的更新操作。
需要说明的是,用户在调用第一、第二及第三数据接口时,是根据具体执行的功能选择性的进行调用,即可以同时调用上述三个数据接口,也可以是调用上述三个数据接口中的一个或两个,具体调用数据接口的数量以能够达到某项功能为目的,此处不做具体限制。
很明显地,在例1中,若采用现有技术所用的数据库开发技术,则在整个数据库事务中,对数据表A需要锁定10+10+100+100+10一共230毫秒,而用户若调用本发明实施例中的数据接口,将第2步和第6步由立即执行改为缓存并批量执行,则对数据表A的锁定时间,从230毫秒减少到10+10=20毫秒,大幅降低数据表的锁定时间,从而提升了数据库的运行性能及高并发性。
另外,在现有技术中只实现了ORM模型产生的数据库操作的缓存,而实际应用中手工编写数据库操作非常常见且不可避免,本发明中通过提供接口供手工编写数据库操作的缓存,并提供第四数据接口对数据库的操作依次批量执行,从而减少了对数据表的锁定时间,提高了数据库的响应速度。
本发明实施例中设置第一数据接口,用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;设置第二数据接口,用于将由用户编写的数据库更新操作缓存至缓存设备中;设置第三数据接口,用于将由用户编写的数据库查询操作缓存至缓存设备中;设置第四数据接口,用于从所述缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。因为用户在调用本发明中的第一、第二或第三数据接口时,是将所有的数据库操作都通过对应的数据接口缓存至缓存设备中,从而使得用户在调用本发明中的第四数据接口时,第四数据接口从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照第一顺序依次执行对数据库的不同操作,从而减少了执行对应的数据库更新操作时对数据表的锁定时间,提高了数据库的响应时间和高并发性。
而在实际操作中,对于ORM模型自动生成的数据表,又分为主从关系数据表和非主从关系数据表,故针对实际需求,本发明实施例中又将第一数据接口细分为第五数据接口、第六数据接口和第七数据接口,其中,第五数据接口用于缓存ORM自动生成的非主从关系数据表的数据库更新操作;第六数据接口用于缓存ORM自动生成的主从关系数据表中主表的数据库更新操作;第七数据接口用于缓存ORM自动生成的主从关系数据表中从表的数据库更新操作。
而当ORM模型自动生成的数据表为非主从关系的数据表时,在用户调用第四数据接口时,第四数据接口会按照预先从缓存设备中读取的用户调用上述一个或多个数据接口的第一顺序依次执行对数据库的操作,而当ORM模型自动生成的数据表为主从关系的数据表,且主表的主键是自增长列时,在用户调用第四数据接口时,第四数据接口会按照预先缓存的用户对数据库的操作顺序分批执行对数据库的操作,请参阅图3,本发明实施例中提升数据库应用性能的方法的另一个实施例,包括:
301、当用户调用数据接口的所述第一顺序中包括第六数据接口和第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照第一顺序执行完第六数据接口对应的数据库操作时,自动将所述主表的自增长列的值提取并填充到所述缓存设备中所述主表对应的从表数据模型中,清空所述缓存设备中缓存的所述第一顺序;
302、按照第二顺序依次执行后续的数据库操作,第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口对应的数据库操作。
为方便理解,下面举例进行说明:
因为所有数据库的操作都缓存在同一个内部缓存中(即调用第一、第二、第三数据接口后,对数据库的操作都缓存在同一个内部缓存中),数据库操作的执行顺序跟该操作添加到缓存中的顺序相同。如:
例2:用户调用不同的数据接口产生的数据库操作的执行顺序为:操作A,操作B,操作C,操作D。
1)缓存ORM自动生成的数据库更新操作A,简称操作A
2)缓存用户编写的数据库查询操作B,简称操作B
3)缓存ORM自动生成的数据库更新操作C,简称操作C
4)缓存用户编写的数据库更新操作D,简称操作D
5)执行缓存中的数据库操作。
当步骤1和步骤3中ORM自动生成的数据表都为非主从关系数据表时,则当用户调用第四数据接口时,对数据库的操作即为依次执行步骤1234,而当步骤1中ORM自动生成的数据表为主表,步骤3中ORM自动生成的数据表为从表,且步骤1中的主表的主键是自增长列时,则当用户调用第四数据接口时,需要对数据库分批执行更新操作,即先对数据库执行步骤1(第一批),并在步骤1执行结束后,自动将主表的自增长列的值提取并填充到步骤3的从表中,然后清空缓存设备中缓存的第一顺序,并按照第二顺序234(第二批),依次执行后续的数据库操作。同理类推,当第一顺序中包含调用第六数据接口和第七数据接口缓存的数据库操作时,通过第四数据接口完成对第六数据接口缓存的数据库更新后,都会自动将主表的自增长列的值提取并填充到缓存设备中主表对应的从表数据模型中,然后清空缓存设备中的第一顺序,并按照第二顺序依次执行后续的数据库操作,其中,第二顺序为排列在利用第六数据接口缓存的数据库操作之后的数据库操作。
上面描述了本发明实施例中的提升数据库应用性能的方法,下面对本发明实施例中提升数据库应用性能的终端进行描述,请参阅图4,本发明实施例中提升数据库应用性能的终端的一个实施例,包括:
第一数据接口401,所述第一数据接口用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;
第二数据接口402,所述第二数据接口用于将由用户编写的数据库更新操作缓存至缓存设备中;
第三数据接口403,所述第三数据接口用于将由用户编写的数据库查询操作缓存至缓存设备中;
第四数据接口404,所述第四数据接口用于从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。
优选的,所述第一数据接口401包括:
第五数据接口4011,所述第五数据接口用于将ORM自动生成的非主从关系数据表的数据库更新操作缓存至缓存设备中;
第六数据接口4012,所述第六数据接口用于将ORM自动生成的主从关系数据表中主表的数据库更新操作缓存至缓存设备中;
第七数据接口4013,所述第七数据接口用于将ORM自动生成的主从关系数据表中从表的数据库更新操作缓存至缓存设备中。
优选的,所述第三数据接口403包括:
上下文对象4031,所述上下文对象用于在用户调用所述第三数据接口时,存储对应的数据查询结果。
优选的,所述第四数据接口404包括:
清空模块4041,用于当用户调用数据接口的所述第一顺序中包括所述第六数据接口和所述第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照所述第一顺序执行完所述第六数据接口缓存的数据库操作时,自动将所述主表的自增长列的值提取并填充到缓存设备中所述主表对应的从表数据模型中,清空所述缓存设备中缓存的所述第一顺序;
执行模块4042,用于按照第二顺序依次执行后续的数据库操作,所述第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口缓存的数据库操作。
需要说明的是,上述各接口的作用已在图1至图3的实施例中详细描述,此处不再赘述。
本发明实施例中设置第一数据接口401,用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;设置第二数据接口402,用于将由用户编写的数据库更新操作缓存至缓存设备中;设置第三数据接口403,用于将由用户编写的数据库查询操作缓存至缓存设备中;设置第四数据接口404,用于从所述缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。因为用户在调用本发明中的第一、第二或第三数据接口时,是将所有的数据库操作都通过对应的数据接口缓存至缓存设备中,从而使得用户在调用本发明中的第四数据接口时,第四数据接口从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照第一顺序依次执行对数据库的不同操作,从而减少了执行对应的数据库更新操作时对数据表的锁定时间,提高了数据库的响应时间和高并发性。
上面从模块化功能实体的角度对本发明实施例中的提升数据库应用性能的终端进行了描述,下面从硬件处理的角度对本发明实施例中的计算机装置进行描述:
该计算机装置用于实现提升数据库应用性能的终端的功能,本发明实施例中计算机装置一个实施例包括:
处理器以及存储器;
存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:
设置第一数据接口,所述第一数据接口用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;
设置第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至缓存设备中;
设置第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至缓存设备中;
设置第四数据接口,所述第四数据接口用于从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
设置第五数据接口,所述第五数据接口用于将ORM自动生成的非主从关系数据表的数据库更新操作缓存至缓存设备中;
设置第六数据接口,所述第六数据接口用于将ORM自动生成的主从关系数据表中主表的数据库更新操作缓存至缓存设备中;
设置第七数据接口,所述第七数据接口用于将ORM自动生成的主从关系数据表中从表的数据库更新操作缓存至缓存设备中。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
所述用户在调用第三数据接口时,自动创建上下文对象,并在所述上下文对象中分别存储每次的数据查询结果。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
当用户在调用所述第三数据接口或所述第四数据接口缓存对应的数据库操作时,自动将所述数据库操作中的数据参数进行更名,以避免所述数据参数与ORM自动生成的数据库操作中的数据参数同名。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
当用户调用数据接口的所述第一顺序中包括所述第六数据接口和所述第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照所述第一顺序执行完所述第六数据接口缓存的数据库操作时,自动将所述主表的自增长列的值提取并填充到所述缓存设备中所述主表对应的从表数据模型中,清空所述缓存设备中缓存的所述第一顺序;
并按照第二顺序依次执行后续的数据库操作,所述第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口缓存的数据库操作。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
当用户调用第一数据接口时,ORM系统自动保存模型中数据的初始值,并跟踪模型中数据的变化值,以记录下模型中数据的最终值。
可以理解的是,上述说明的计算机装置中的处理器执行所述计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述提升数据库应用性能的终端中的执行过程。例如,所述计算机程序可以被分割成上述提升数据库应用性能的终端中的各单元,各单元可以实现如上述相应提升数据库应用性能的终端说明的具体功能。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质用于实现提升数据库应用性能的终端的功能,其上存储有计算机程序,计算机程序被处理器执行时,处理器,可以用于执行如下步骤:
设置第一数据接口,所述第一数据接口用于将用户在ORM对象-关系映射中模型自动生成的数据库更新操作缓存至缓存设备中;
设置第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至缓存设备中;
设置第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至缓存设备中;
设置第四数据接口,所述第四数据接口用于从缓存设备中读取用户调用上述一个或多个数据接口的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
设置第五数据接口,所述第五数据接口用于将ORM自动生成的非主从关系数据表的数据库更新操作缓存至缓存设备中;
设置第六数据接口,所述第六数据接口用于将ORM自动生成的主从关系数据表中主表的数据库更新操作缓存至缓存设备中;
设置第七数据接口,所述第七数据接口用于将ORM自动生成的主从关系数据表中从表的数据库更新操作缓存至缓存设备中。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
所述用户在调用第三数据接口时,自动创建上下文对象,并在所述上下文对象中分别存储每次的数据查询结果。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当用户在调用所述第三数据接口或所述第四数据接口缓存对应的数据库操作时,自动将所述数据库操作中的数据参数进行更名,以避免所述数据参数与ORM自动生成的数据库操作中的数据参数同名。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当用户调用数据接口的所述第一顺序中包括所述第六数据接口和所述第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照所述第一顺序执行完所述第六数据接口缓存的数据库操作时,自动将所述主表的自增长列的值提取并填充到缓存设备中所述主表对应的从表数据模型中,清空所述缓存设备中缓存的所述第一顺序;
并按照第二顺序依次执行后续的数据库操作,所述第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口缓存的数据库操作。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当用户调用第一数据接口时,ORM系统自动保存模型中数据的初始值,并跟踪模型中数据的变化值,以记录下模型中数据的最终值。
可以理解的是,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在相应的一个计算机可读取存储介质中。基于这样的理解,本发明实现上述相应的实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种提升数据库应用性能的方法,其特征在于,包括:
设置第一数据接口,所述第一数据接口用于将用户在ORM系统自动生成的数据库更新操作缓存至缓存设备中;
设置第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至所述缓存设备中;
设置第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至所述缓存设备中;
设置第四数据接口,所述第四数据接口用于从所述缓存设备中读取用户调用所述第一数据接口、所述第二数据接口、以及所述第三数据接口中的一个或多个组成的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作;
所述第一数据接口包括:
第五数据接口,所述第五数据接口用于将所述ORM系统自动生成的非主从关系数据表的数据库更新操作缓存至所述缓存设备中;
第六数据接口,所述第六数据接口用于将所述ORM系统自动生成的主从关系数据表中主表的数据库更新操作缓存至所述缓存设备中;
第七数据接口,所述第七数据接口用于将所述ORM系统自动生成的主从关系数据表中从表的数据库更新操作缓存至所述缓存设备中;
当用户调用数据接口的所述第一顺序中包括所述第六数据接口和所述第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照所述第一顺序执行完所述第六数据接口缓存的数据库操作时,自动将所述主表的自增长列的值提取并填充到所述缓存设备中所述主表对应的从表数据模型中,清空所述缓存设备中缓存的所述第一顺序;
并按照第二顺序依次执行后续的数据库操作,所述第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口缓存的数据库操作。
2.根据权利要求1所述的方法,其特征在于,所述用户在调用第三数据接口时,自动创建上下文对象,并在所述上下文对象中分别存储每次的数据查询结果。
3.根据权利要求1所述的方法,其特征在于,当用户在调用所述第二数据接口缓存对应的数据库操作时,自动将所述数据库操作中的数据参数进行更名,以避免所述数据参数与所述ORM系统自动生成的数据库操作中的数据参数同名。
4.根据权利要求1至3中任一项所述的方法,其特征在于,
当用户调用第一数据接口时,所述ORM系统自动保存所述ORM系统的模型中数据的初始值,并跟踪所述模型中数据的变化值,以记录下所述模型中数据的最终值。
5.一种提升数据库应用性能的终端,其特征在于,包括:
第一数据接口,所述第一数据接口用于将用户在ORM系统自动生成的数据库更新操作缓存至缓存设备中;
第二数据接口,所述第二数据接口用于将由用户编写的数据库更新操作缓存至所述缓存设备中;
第三数据接口,所述第三数据接口用于将由用户编写的数据库查询操作缓存至所述缓存设备中;
第四数据接口,所述第四数据接口用于从所述缓存设备中读取用户调用所述第一数据接口、所述第二数据接口、以及所述第三数据接口中的一个或多个组成的第一顺序,并按照所述第一顺序依次执行对数据库的不同操作;
所述第一数据接口包括:
第五数据接口,所述第五数据接口用于将所述ORM系统自动生成的非主从关系数据表的数据库更新操作缓存至缓存设备中;
第六数据接口,所述第六数据接口用于将所述ORM系统自动生成的主从关系数据表中主表的数据库更新操作缓存至缓存设备中;
第七数据接口,所述第七数据接口用于将所述ORM系统自动生成的主从关系数据表中从表的数据库更新操作缓存至缓存设备中;
所述第四数据接口包括:
清空模块,用于当用户调用数据接口的所述第一顺序中包括所述第六数据接口和所述第七数据接口时,若主表的主键为自增长列且是插入数据到数据表,则在按照所述第一顺序执行完所述第六数据接口缓存的数据库操作时,自动将所述主表的自增长列的值提取并填充到所述缓存设备中所述主表对应的从表数据模型中,清空所述缓存设备中缓存的所述第一顺序;
执行模块,用于按照第二顺序依次执行后续的数据库操作,所述第二顺序为所述第一顺序中排列在所述第六数据接口之后的其他数据接口缓存的数据库操作。
6.根据权利要求5所述的终端,其特征在于,所述第三数据接口包括:
上下文对象,所述上下文对象用于在用户调用所述第三数据接口时,存储对应的数据查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810689303.7A CN108897849B (zh) | 2018-06-28 | 2018-06-28 | 一种提升数据库应用性能的方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810689303.7A CN108897849B (zh) | 2018-06-28 | 2018-06-28 | 一种提升数据库应用性能的方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897849A CN108897849A (zh) | 2018-11-27 |
CN108897849B true CN108897849B (zh) | 2020-12-22 |
Family
ID=64346682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810689303.7A Active CN108897849B (zh) | 2018-06-28 | 2018-06-28 | 一种提升数据库应用性能的方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897849B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046821A (zh) * | 2006-03-31 | 2007-10-03 | Sap股份公司 | 通用数据库操纵器 |
CN103020149A (zh) * | 2012-11-22 | 2013-04-03 | 用友软件股份有限公司 | 共享数据更新装置和共享数据更新方法 |
US9507820B1 (en) * | 2012-10-23 | 2016-11-29 | Dell Software Inc. | Data modeling system for runtime schema extensibility |
-
2018
- 2018-06-28 CN CN201810689303.7A patent/CN108897849B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046821A (zh) * | 2006-03-31 | 2007-10-03 | Sap股份公司 | 通用数据库操纵器 |
US9507820B1 (en) * | 2012-10-23 | 2016-11-29 | Dell Software Inc. | Data modeling system for runtime schema extensibility |
CN103020149A (zh) * | 2012-11-22 | 2013-04-03 | 用友软件股份有限公司 | 共享数据更新装置和共享数据更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108897849A (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437795B2 (en) | Upgrading systems with changing constraints | |
CN108536761A (zh) | 报表数据查询方法及服务器 | |
US9477609B2 (en) | Enhanced transactional cache with bulk operation | |
EP2797013B1 (en) | Database update execution according to power management schemes | |
US20120158795A1 (en) | Entity triggers for materialized view maintenance | |
CN101673287A (zh) | 一种sql语句生成方法及系统 | |
US20210097061A1 (en) | High frequency data management (hfdm) | |
CN112612853A (zh) | 基于数据库集群的数据处理方法、装置及电子设备 | |
CN112115152A (zh) | 数据增量更新及查询方法、装置、电子设备及存储介质 | |
US20230012642A1 (en) | Method and device for snapshotting metadata, and storage medium | |
CN112667612A (zh) | 一种数据质量检核方法、装置、电子设备及存储介质 | |
CN113672627A (zh) | Elasticsearch搜索引擎索引构建方法及装置 | |
WO2020224498A1 (zh) | 基于联盟链的关系型数据库及其操作方法和装置 | |
CN108897849B (zh) | 一种提升数据库应用性能的方法及终端 | |
US20230252025A1 (en) | Data Processing System, Blockchain-Based Data Processing Method, and Device | |
CN113076086B (zh) | 元数据管理系统和使用其对模型对象进行建模的方法 | |
CN113760237A (zh) | 编译地址的更新方法、装置、终端设备及可读存储介质 | |
CN114385657A (zh) | 数据存储方法、装置及存储介质 | |
CN114860362A (zh) | 界面的更新方法及装置 | |
CN113609128A (zh) | 生成数据库实体类的方法、装置、终端设备及存储介质 | |
JP2018109898A (ja) | データマイグレーションシステム | |
CN115956240A (zh) | 基于增量克隆的数据库升级 | |
EP1941396A2 (en) | Method and system for re-population of data in a database | |
CN113434359B (zh) | 数据溯源系统构建方法、装置、电子设备及可读存储介质 | |
CN115269207B (zh) | 一种用于vCPE网元分配资源的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |