一种数据同步自动遍历方法技术

技术编号:34595166 阅读:12 留言:0更新日期:2022-08-20 08:55
本发明专利技术公开了一种数据同步自动遍历方法,包括获取当前待同步数据的主键信息;将遍历结果存储到链表中;计算所需遍历数据库表中数据总量,根据预设数值进行强行分页,在分页节点添加页面标识作为遍历的结点;判断每条数据链表内是否存在所述页面标识,若存在,则遍历下一页数据;判断已遍历数据链表内是否存在未遍历数据;直至全部数据库表内数据遍历完毕,结束遍历完成数据同步。本发明专利技术通过在数据同步的遍历过程中,进行全部数据的分页处理,分页遍历数据库表内的数据,减小对CPU的损耗,降低单元数据对服务器的压力,提高系统的吞吐率和性能。能。

【技术实现步骤摘要】
一种数据同步自动遍历方法


[0001]本
技术实现思路
涉及数据处理
,尤其涉及一种数据同步自动遍历方法。

技术介绍

[0002]在软件系统开发过程中,无可避免的需要需要存储大量数据,为了数据维护、查找方便,在处理存储大量数据时,为了保证数据本身能够及时更新、删除,需要对数据库的全量数据进行同步时,以及避免遍历操作长时间独占CPU,使用遍历list获得每一个数据。
[0003]分段遍历过程中,通常需要先了解应用程序的运行逻辑,然后根据程序运行逻辑编写针对这个应用程序的测试程序,来实现遍历整个应用程序界面的工作,但是当不知道应用程序运行逻辑的情况下是很难正常进行遍历工作的,无法实现批量的自动遍历;另外直接全量数据进行遍历的方法性能比较低,同时也容易损耗CPU,影响程序性能。

技术实现思路

[0004]本
技术实现思路
所要解决的技术问题是针对
技术介绍
中所涉及到的缺陷,提供一种数据同步自动遍历方法,通过设置遍历分页节点进行数据遍历,保证数据快速遍历完毕,复杂度低且性能效率高。
[0005]本
技术实现思路
的目的及解决的技术问题是采用以下技术方案来实现的:
[0006]一种数据同步自动遍历方法,包括以下步骤:
[0007]1.获取当前待同步数据的主键信息,所述主键信息中包括数据标识和数据文本;
[0008]2.将遍历结果存储到链表中;
[0009]3.计算所需遍历数据库表中数据总量,根据预设数值进行强行分页,每页数据条数固定,在分页节点添加页面标识作为遍历的结点;
[0010]4.判断每条数据链表内是否存在所述页面标识,若存在,则遍历下一页数据;
[0011]5.判断已遍历数据链表内是否存在未遍历数据,对比已遍历链表数据数量和遍历前设定的数据数量是否一致,如果不是,则重复此步骤;
[0012]6.直至已遍历数据链表数据数量达到遍历界面最大值,全部数据库表内数据遍历完毕,结束遍历完成数据同步。
[0013]优选的,所述分页后每页数据数量为提前设定。
[0014]优选的,所述数据库表中存在空页时,跳过空页后进行遍历。
[0015]优选的,所述数据库表中的数据为有序数据集合。
[0016]优选的,根据数据库表的总页数判断数据同步完成后,未来数据范围内的数量。
[0017]优选的,获取所述页面标识,然后循环获取所有页面的页面标识,最后依次判断是否可以触发获取下一页面的事件,从而遍历当前所有可触发分页。
[0018]优选的,计算所需遍历数据库表中数据总量包括查询所需遍历数据库表中主键数量,所述主键包括趋势递增离散主键和自增主键,趋势递增离散主键和自增主键在进行数据同步的遍历时分别进行数据表存储、遍历的操作。
[0019]优选的,所述步骤3还包括:
[0020]查询并接收当前数据条数总量的参数,确定页面顺序;
[0021]获取当前数据页面的页面标识,将获取到的当前页面标识存入至页面标识链表中;
[0022]设定一个初始值为0的变量n,使当前数据页面编号为n,获取下一数据页面后n的数值加1;
[0023]判断所述数据页面是否存在于已遍历数据链表中,如果不存在则变量n的数值增加1,返回上一步骤继续获取下一个数据页面,直至查询到所有数据页面的数据存在于已遍历数据链表中。
[0024]本专利技术通过在数据同步的遍历过程中,进行全部数据的分页处理,分页遍历数据库表内的数据,不需要全部数据进行遍历,减小对CPU的损耗,降低单元数据对服务器的压力,提高系统的吞吐率和性能,为更高效、更稳定的自动遍历带来可行性。
具体实施方式
[0025]下面对本
技术实现思路
的技术方案做进一步的详细说明。显然,所描述的实施例仅仅是本
技术实现思路
一部分实施例,而不是全部的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本
技术实现思路
保护的范围。
[0026]应当理解,尽管这里可以使用术语第一、第二、第三等描述各个元件、组件和/或部分,但这些元件、组件和/或部分不受这些术语限制。
[0027]在一个例子中,数据同步时进行遍历是运行在终端设备(如PC(Personal Computer,个人计算机)、移动终端、笔记本电脑等)上的客户端显示的,以终端设备为移动终端(如手机、平板电脑、ipad等)为例,则应用页面的遍历方法,可以应用在无线自动化测试的应用场景下。其中,遍历,是指通过遍历算法模拟用户沿着某条搜索路线,依次对每条数据均做一次且仅做一次访问来完成数据同步。
[0028]一种数据同步自动遍历方法,包括以下步骤:
[0029]1.获取当前待同步数据的主键信息,所述主键信息中包括数据标识和数据文本;
[0030]2.将遍历结果存储到链表中;
[0031]3.计算所需遍历数据库表中数据总量,根据预设数值进行强行分页,每页数据条数固定,在分页节点添加页面标识作为遍历的结点;
[0032]4.判断每条数据链表内是否存在所述页面标识,若存在,则遍历下一页数据;
[0033]5.判断已遍历数据链表内是否存在未遍历数据,对比已遍历链表数据数量和遍历前设定的数据数量是否一致,如果不是,则重复此步骤;
[0034]6.直至已遍历数据链表数据数量达到遍历界面最大值,全部数据库表内数据遍历完毕,结束遍历完成数据同步。
[0035]在一个实施例中,客户端收到从一个页面读取的数据后,更新该页面信息。
[0036]在一个实施例中,数据库使用mysql,系统开发、测试和验证环境所有表都是用varchar型的非自增字段作为主键,如果不用自增数字键作为主键,问题主要有如下:
[0037]表容易产生碎片,由于碎片的存在,表会变得很大,严重影响查询和DML操作性能;
[0038]由于主键不是自增的,数据将不会按顺序插入,需要查找合适位置随机插入,严重
影响数据插入性能;
[0039]主键用uuid值要比用自增数字值所占空间大,同样二级索引也变大,使得用主键或二级索引来查询数据效率相对变低。
[0040]进行数据遍历前,查询g_d_copy表字段_id的自增主键,查询业务表的数量,查询带有自增非空数字主键表的数量,查询没有非空自增数字列主键的表和没有主键的表,计算所需遍历数据库表中数据总量,除以每页数据常量,强行分页,进行数据遍历。
[0041]在一个实施例中,采用雪花算法生成的趋势递增离散主键,进行数据遍历前,对所述离散主键进行总量查询。
[0042]在一个实施例中,所述分页后每页数据数量为提前设定。
[0043]在一个实施例中,所述数据库表中存在空页时,跳过空页后进行遍历。
[0044]在一个实施例中,所述数据库表中的数据为有序数据集合。
[0045]在一个实施例中,根据数据库表的总页数判断数据同步完成后,未来数据范围内的数量。
[0046]在一个实施例中,获取所述页本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步自动遍历方法,其特征在于,包括以下步骤:(1)获取当前待同步数据的主键信息,所述主键信息中包括数据标识和数据文本;(2)将遍历结果存储到链表中;(3)计算所需遍历数据库表中数据总量,根据预设数值进行强行分页,每页数据条数固定,在分页节点添加页面标识作为遍历的结点;(4)判断每条数据链表内是否存在所述页面标识,若存在,则遍历下一页数据;(5)判断已遍历数据链表内是否存在未遍历数据,对比已遍历链表数据数量和遍历前设定的数据数量是否一致,如果不是,则重复此步骤;(6)直至已遍历数据链表数据数量达到遍历界面最大值,全部数据库表内数据遍历完毕,结束遍历完成数据同步。2.根据权利要求1所述的数据同步自动遍历方法,其特征在于,所述分页后每页数据数量为提前设定。3.根据权利要求1所述的数据同步自动遍历方法,其特征在于,所述数据库表中存在空页时,跳过空页后进行遍历。4.根据权利要求3所述的数据同步自动遍历方法,其特征在于,所述数据库表中的数据为有序数据集合。5.根据权利要求1所述的数据同步自动遍历方法,其特征在于,根据数据...

【专利技术属性】
技术研发人员:董罡杨雷李印吕浩
申请(专利权)人:中企云链北京金融信息服务有限公司
类型:发明
国别省市:

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

1