一种数据同步自动遍历方法与流程

文档序号:31184142发布日期:2022-08-19 18:55阅读:50来源:国知局

1.本

技术实现要素:
涉及数据处理技术领域,尤其涉及一种数据同步自动遍历方法。


背景技术:

2.在软件系统开发过程中,无可避免的需要需要存储大量数据,为了数据维护、查找方便,在处理存储大量数据时,为了保证数据本身能够及时更新、删除,需要对数据库的全量数据进行同步时,以及避免遍历操作长时间独占cpu,使用遍历list获得每一个数据。
3.分段遍历过程中,通常需要先了解应用程序的运行逻辑,然后根据程序运行逻辑编写针对这个应用程序的测试程序,来实现遍历整个应用程序界面的工作,但是当不知道应用程序运行逻辑的情况下是很难正常进行遍历工作的,无法实现批量的自动遍历;另外直接全量数据进行遍历的方法性能比较低,同时也容易损耗cpu,影响程序性能。
发明内容
4.本发明内容所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种数据同步自动遍历方法,通过设置遍历分页节点进行数据遍历,保证数据快速遍历完毕,复杂度低且性能效率高。
5.本发明内容的目的及解决的技术问题是采用以下技术方案来实现的:
6.一种数据同步自动遍历方法,包括以下步骤:
7.1.获取当前待同步数据的主键信息,所述主键信息中包括数据标识和数据文本;
8.2.将遍历结果存储到链表中;
9.3.计算所需遍历数据库表中数据总量,根据预设数值进行强行分页,每页数据条数固定,在分页节点添加页面标识作为遍历的结点;
10.4.判断每条数据链表内是否存在所述页面标识,若存在,则遍历下一页数据;
11.5.判断已遍历数据链表内是否存在未遍历数据,对比已遍历链表数据数量和遍历前设定的数据数量是否一致,如果不是,则重复此步骤;
12.6.直至已遍历数据链表数据数量达到遍历界面最大值,全部数据库表内数据遍历完毕,结束遍历完成数据同步。
13.优选的,所述分页后每页数据数量为提前设定。
14.优选的,所述数据库表中存在空页时,跳过空页后进行遍历。
15.优选的,所述数据库表中的数据为有序数据集合。
16.优选的,根据数据库表的总页数判断数据同步完成后,未来数据范围内的数量。
17.优选的,获取所述页面标识,然后循环获取所有页面的页面标识,最后依次判断是否可以触发获取下一页面的事件,从而遍历当前所有可触发分页。
18.优选的,计算所需遍历数据库表中数据总量包括查询所需遍历数据库表中主键数量,所述主键包括趋势递增离散主键和自增主键,趋势递增离散主键和自增主键在进行数据同步的遍历时分别进行数据表存储、遍历的操作。
19.优选的,所述步骤3还包括:
20.查询并接收当前数据条数总量的参数,确定页面顺序;
21.获取当前数据页面的页面标识,将获取到的当前页面标识存入至页面标识链表中;
22.设定一个初始值为0的变量n,使当前数据页面编号为n,获取下一数据页面后n的数值加1;
23.判断所述数据页面是否存在于已遍历数据链表中,如果不存在则变量n的数值增加1,返回上一步骤继续获取下一个数据页面,直至查询到所有数据页面的数据存在于已遍历数据链表中。
24.本发明通过在数据同步的遍历过程中,进行全部数据的分页处理,分页遍历数据库表内的数据,不需要全部数据进行遍历,减小对cpu的损耗,降低单元数据对服务器的压力,提高系统的吞吐率和性能,为更高效、更稳定的自动遍历带来可行性。
具体实施方式
25.下面对本发明内容的技术方案做进一步的详细说明。显然,所描述的实施例仅仅是本发明内容一部分实施例,而不是全部的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明内容保护的范围。
26.应当理解,尽管这里可以使用术语第一、第二、第三等描述各个元件、组件和/或部分,但这些元件、组件和/或部分不受这些术语限制。
27.在一个例子中,数据同步时进行遍历是运行在终端设备(如pc(personal computer,个人计算机)、移动终端、笔记本电脑等)上的客户端显示的,以终端设备为移动终端(如手机、平板电脑、ipad等)为例,则应用页面的遍历方法,可以应用在无线自动化测试的应用场景下。其中,遍历,是指通过遍历算法模拟用户沿着某条搜索路线,依次对每条数据均做一次且仅做一次访问来完成数据同步。
28.一种数据同步自动遍历方法,包括以下步骤:
29.1.获取当前待同步数据的主键信息,所述主键信息中包括数据标识和数据文本;
30.2.将遍历结果存储到链表中;
31.3.计算所需遍历数据库表中数据总量,根据预设数值进行强行分页,每页数据条数固定,在分页节点添加页面标识作为遍历的结点;
32.4.判断每条数据链表内是否存在所述页面标识,若存在,则遍历下一页数据;
33.5.判断已遍历数据链表内是否存在未遍历数据,对比已遍历链表数据数量和遍历前设定的数据数量是否一致,如果不是,则重复此步骤;
34.6.直至已遍历数据链表数据数量达到遍历界面最大值,全部数据库表内数据遍历完毕,结束遍历完成数据同步。
35.在一个实施例中,客户端收到从一个页面读取的数据后,更新该页面信息。
36.在一个实施例中,数据库使用mysql,系统开发、测试和验证环境所有表都是用varchar型的非自增字段作为主键,如果不用自增数字键作为主键,问题主要有如下:
37.表容易产生碎片,由于碎片的存在,表会变得很大,严重影响查询和dml操作性能;
38.由于主键不是自增的,数据将不会按顺序插入,需要查找合适位置随机插入,严重
影响数据插入性能;
39.主键用uuid值要比用自增数字值所占空间大,同样二级索引也变大,使得用主键或二级索引来查询数据效率相对变低。
40.进行数据遍历前,查询g_d_copy表字段_id的自增主键,查询业务表的数量,查询带有自增非空数字主键表的数量,查询没有非空自增数字列主键的表和没有主键的表,计算所需遍历数据库表中数据总量,除以每页数据常量,强行分页,进行数据遍历。
41.在一个实施例中,采用雪花算法生成的趋势递增离散主键,进行数据遍历前,对所述离散主键进行总量查询。
42.在一个实施例中,所述分页后每页数据数量为提前设定。
43.在一个实施例中,所述数据库表中存在空页时,跳过空页后进行遍历。
44.在一个实施例中,所述数据库表中的数据为有序数据集合。
45.在一个实施例中,根据数据库表的总页数判断数据同步完成后,未来数据范围内的数量。
46.在一个实施例中,获取所述页面标识,然后循环获取所有页面的页面标识,最后依次判断是否可以触发获取下一页面的事件,从而遍历当前所有可触发分页。
47.在一个实施例中,计算所需遍历数据库表中数据总量包括查询所需遍历数据库表中主键数量,所述主键包括趋势递增离散主键和自增主键,趋势递增离散主键和自增主键在进行数据同步的遍历时分别进行数据表存储、遍历的操作。
48.在一个实施例中,所述步骤3还包括:
49.查询并接收当前数据条数总量的参数,确定页面顺序;
50.获取当前数据页面的页面标识,将获取到的当前页面标识存入至页面标识链表中;
51.设定一个初始值为0的变量n,使当前数据页面编号为n,获取下一数据页面后n的数值加1;
52.判断所述数据页面是否存在于已遍历数据链表中,如果不存在则变量n的数值增加1,返回上一步骤继续获取下一个数据页面,直至查询到所有数据页面的数据存在于已遍历数据链表中。
53.本发明通过在数据同步的遍历过程中,进行全部数据的分页处理,分页遍历数据库表内的数据,不需要全部数据进行遍历,减小对cpu的损耗,降低单元数据对服务器的压力,提高系统的吞吐率和性能,为更高效、更稳定的自动遍历带来可行性。
54.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
55.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本
说明书仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1