一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于标注字段单独更新无效的减少数据库更新量的方法与流程

2022-10-12 23:19:05 来源:中国专利 TAG:

1.本发明涉及数据库更新技术领域,具体是指一种基于标注字段单独更新无效的减少数据库更新量的方法。


背景技术:

2.随着现代it系统越来越复杂,其所管理的数据量也越来越多,数据更新也越来越频繁。数据更新时会在数据库层面产生大量的更新日志,而更新更新日志中往往会存在一定量的无效语句,使binlog的数据量过大,会发生数据同步延迟,影响写入与读出的及时性,进而影响到系统的可用性,同时,对于it开发人员,如果仅是从翻阅代码的角度去分析发生原因,会花费大量人力。
3.由此可见,现有的it系统由于无法实现对更新语句有效性的判定,使得it系统数据库存在更新量大的问题,导致数据同步延迟,致使数据的写入与读出不及时,因此,我们需要开发一种可有效降低数据库更新量,提高数据同步的速率,同时可节约更新日志的维护和管理的人力物力的数据库更新量处理方法。


技术实现要素:

4.本发明的目的在于解决上述问题,提供一种基于标注字段单独更新无效的减少数据库更新量的方法,可有效降低数据库更新量,提高数据同步的速率,同时可节约更新日志的维护和管理的人力物力。
5.本发明的目的通过下述技术方案实现:
6.一种基于标注字段单独更新无效的减少数据库更新量的方法,包括以下步骤:
7.步骤s1:通过数据库管理软件,新建或修改数据库表,并将新建或修改的数据库表设置为变量t,得到数据库表t。
8.步骤s2:为数据库表t的每个字段新增一个“单独更新无效”字段约束选项,为数据库表t的每个字段配置一个“单独更新无效”属性,并建立字段与“单独更新无效”属性的对应关系。
9.步骤s3:对字段与“单独更新无效”的属性之间的对应关系进行存储。
10.步骤s4:提取存储中的字段的标志为“单独更新无效”的属性fy=0的字段,并将提取的字段设定为字段集合m。
11.步骤s5:数据库执行数据库表t的更新语句时,提取该更新语句的字段的新值和原值。
12.步骤s6:遍历并比较该更新语句中字段的新值和原值,遍历完成后查看更新语句的字段的新值和原值是否有存在差异,是,生成字段集合y,将更新语句的字段加入字段集合y中,并执行步骤s7;遍历完成后,所有字段的新值和旧值都不存在差异,数据库则不执行该条语句并丢弃,不产生binlog。
13.步骤s7:判定字段集合y是否为字段集合m的子集,是,数据库则不执行该条语句并
丢弃,不产生binlog;否,数据库则执行该条语句,产生binlog。
14.作为本发明的一种优选技术方案,所述步骤s2中,“单独更新无效”字段约束选项用于记录字段与表示该字段是否勾选上“单独更新无效”的对应关系,“单独更新无效”的属性设置为fy,fy的默认值为1;其中,fy=0时,表示勾选了“单独更新无效”,fy=1时,表示未勾选“单独更新无效”。
15.作为本发明的一种优选技术方案,所述步骤s2中,字段为:f1,f2,
……
fn,“n”表示字段个数为正整数,且n≧1;f1表示第一个字段,f2表示第二个字段,fn表示第n个字段;每个字段配置的“单独更新无效”属性依次为fy1,fy2,
……
fyn,且f1,f2,
……
fn与fy1,fy2,
……
fyn为一一对应关系。
16.作为本发明的一种优选技术方案,所述步骤s4中,字段集合m为:f1,f2
……
fm,“m”表示字段个数为正整数,且n≧m≧1。
17.作为本发明的一种优选技术方案,所述步骤s5中,更新语句的字段的新值和原值如下:
18.update tset f1=newf1,f2=newf2,
……
fn=newfn,其中,newf1表示的为f1字段的新值,newf2表示为f2字段的新值,newfn表示为fn字段的新值。
19.where f1=oldf1,f2=oldf2,
……
fn=oldfn;其中,oldf1表示语句未执行f1字段的原值,oldf2表示语句未执行f2字段的原值,oldfn表示语句未执行fn字段的原值。
20.作为本发明的一种优选技术方案,所述步骤s6中,字段集合y为:fi1,fi2,
……
fiy。
21.作为本发明的一种优选技术方案,所述步骤s7中,字段集合y为字段集合m的子集时,其中,y=fi1,fi2,...fiy,m=fi1,fi2...fim。
22.本发明与现有技术相比,具有以下优点及有益效果:
23.本发明通过在建表时提前给数据库字段标注上“单独更新无效”的属性,可有效的判断出提交给数据库的更新语句是否有效,使无效更新语句不被数据库执行,减小了binlog的数据量,减小主从数据库之间的binlog复制的网络流量,有效的减少数据库的更新量以及数据库执行压力,提高了it系统服务能力,从而本发明很好的解决了需要it系统数据库存在更新量大的问题。
具体实施方式
24.下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不限于此。
25.实施例
26.本发明的基于标注字段单独更新无效的减少数据库更新量的方法,在具体的实施例时包括以下步骤:
27.步骤s1:通过数据库管理软件,新建或修改数据库表,并将新建或修改的数据库表设置为变量t,得到数据库表t。
28.步骤s2:为数据库表t的每个字段新增一个“单独更新无效”字段约束选项,为数据库表t的每个字段配置一个“单独更新无效”属性,并建立字段与“单独更新无效”属性的对应关系。
29.其中,所述步骤s2中,“单独更新无效”字段约束选项用于记录字段与表示该字段
是否勾选上“单独更新无效”的对应关系,“单独更新无效”的属性设置为fy,fy的默认值为1。实施时,当勾选了“单独更新无效”时,此时的fy=0。当未勾选“单独更新无效”时,此时的fy=1。本实施例中的字段优先设定为:f1,f2,
……
fn,“n”表示字段个数为正整数,且n≧1;f1表示第一个字段,f2表示第二个字段,fn表示第n个字段;每个字段配置的“单独更新无效”属性依次为fy1,fy2,
……
fyn,且f1,f2,
……
fn与fy1,fy2,
……
fyn为一一对应关系。如:字段集合方式f1的“单独更新无效”的属性为fy1,字段集合方式f2的“单独更新无效”的属性为fy2,字段集合方式fn的“单独更新无效”的属性为fyn。
30.步骤s3:对字段与“单独更新无效”的属性之间的对应关系进行存储。
31.步骤s4:提取存储中的字段的标志为“单独更新无效”的属性fy=0的字段,并将提取的字段设定为字段集合m。其中,字段集合m为:f1,f2
……
fm,“m”表示字段个数为正整数,且n≧m≧1。
32.步骤s5:数据库执行数据库表t的更新语句时,提取该更新语句的字段的新值和原值。
33.其中,更新语句的字段的新值和原值如下:
34.update tset f1=newf1,f2=newf2,
……
fn=newfn,其中,newf1表示的为f1字段的新值,newf2表示为f2字段的新值,newfn表示为fn字段的新值;
35.where f1=oldf1,f2=oldf2,
……
fn=oldfn;其中,oldf1表示语句未执行f1字段的原值,oldf2表示语句未执行f2字段的原值,oldfn表示语句未执行fn字段的原值。
36.步骤s6:遍历并比较该更新语句中字段的新值和原值,遍历完成后查看更新语句的字段的新值和原值是否有存在差异,是,生成字段集合y,将更新语句的字段加入字段集合y中,并执行步骤s7;遍历完成后,所有字段的新值和旧值都不存在差异,数据库则不执行该条语句并丢弃,不产生binlog。具体的,字段集合y为:fi1,fi2,
……
fiy。
37.步骤s7:判定字段集合y是否为字段集合m的子集,是,数据库则不执行该条语句并丢弃,不产生binlog;否,数据库则执行该条语句,产生binlog。
38.其中,字段集合y为字段集合m的子集时,其中,y=fi1,fi2,...fiy,m=fi1,fi2...fim。
39.具体实施时,通过新建或修改数据库表,并在新建或修改的数据库表中设置“单独更新无效”字段约束选项,同时为变量t通过在建表时提前给数据库字段标注上“单独更新无效”的属性,可有效的判断出提交给数据库的更新语句是否有效,使无效更新语句不被数据库执行,减小了binlog的数据量,减小主从数据库之间的binlog复制的网络流量,有效的减少数据库的更新量以及数据库执行压力,提高了it系统服务能力,从而本发明很好的解决了需要it系统数据库存在更新量大的问题。
40.如上所述,便可很好的实现本发明。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献