一种数据的压缩方法、装置、计算机设备和存储介质
技术领域
本发明涉及计算机
技术领域
,特别是涉及一种数据的压缩方法、一种数据的压缩装置、一种计算机设备和一种存储介质。背景技术
随这系统的数据量的增长,需要批量根据id检索数据时候,性能会越来越慢,甚至引发bug。举例而言,当应用向数据库查询多个主键时候,如果主键个数太多,会导致数目列表太长报错,或导致性能低下。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据的压缩方法、一种数据的压缩装置、一种计算机设备和一种存储介质。
为了解决上述问题,本发明实施例公开了一种数据的压缩方法,包括:
获取多个用户数字ID;
针对所述用户数字ID进行分类,获取连续的用户数字ID;
确定所述连续的用户数字ID的集合为第一集合;
将所述第一集合压缩为预设格式的压缩数据。
优选地,所述方法还包括:
将除所述连续的用户数字ID的集合以外的用户数字ID确定为第二集合。
优选地,所述针对所述用户数字ID进行分类,获取连续的用户数字ID,包括:
针对用户数字ID进行排序,获得依次排列的用户数字ID;
判断所述依次排列的每个用户数字ID中的当前元素与下一元素是否连续;
当所述述依次排列的每个用户数字ID中的当前元素与下一元素都连续时,则确定用户数字ID为连续的用户数字ID。
优选地,所述将所述第一集合压缩为预设格式的压缩数据,包括:
将所述第一集合压缩为包含每个的连续的用户数字ID的第一个元素及最后一个元素的压缩数据。
优选地,所述获取多个用户数字ID,包括:
当批量检索数值类型数据时,获取多个用户数字ID。
本发明实施例公开了一种数据的压缩装置,包括:
获取模块,用于获取多个用户数字ID;
分类模块,用于针对所述用户数字ID进行分类,获取连续的用户数字ID;
第一集合确定模块,用于确定所述连续的用户数字ID的集合为第一集合;
压缩模块,用于将所述第一集合压缩为预设格式的压缩数据。
优选地,所述装置还包括:
第二集合确定模块,用于将除所述连续的用户数字ID的集合以外的用户数字ID确定为第二集合。
优选地,所述分类模块包括:
排序子模块,用于针对用户数字ID进行排序,获得依次排列的用户数字ID;
判断子模块,用于判断所述依次排列的每个用户数字ID中的当前元素与下一元素是否连续;
确定子模块,用于当所述述依次排列的每个用户数字ID中的当前元素与下一元素都连续时,则确定用户数字ID为连续的用户数字ID。
本发明实施例公开了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的数据的压缩方法的步骤。
本发明实施例公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据的压缩方法的步骤。
本发明实施例包括以下优点:
本发明实施例中,该数据的压缩方法包括:获取多个用户数字ID;针对所述用户数字ID进行分类,获取连续的用户数字ID;确定所述连续的用户数字ID的集合为第一集合;将所述第一集合压缩为预设格式的压缩数据;本发明实施例中,通过算法压缩检索数值类型,提升计算设备性能,在大量数据场景下,数据库批量检索数值类型数据,需要算法压缩减少网络与数据库资源的浪费,减少缺陷的产生。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图
图1是本发明实施例的一种数据的压缩方法实施例的步骤流程图;
图2是本发明实施例的一种连续的用户数字ID获取步骤的流程示意图;
图3是本发明实施例的一种数据的压缩装置实施例的结构框图;
图4是一个实施例的一种计算机设备的内部结构图。
具体实施方式
为了使本发明实施例所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,示出了本发明实施例的一种数据的压缩方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,获取多个用户数字ID;
本发明实施例中,该数据的压缩方法可以应用于学习平台,而该学习平台可以运行于多种终端上,如个人电脑(PC,Personal Computer)、智能手机、平板电脑等终端,也可以是可安装应用程序的其他终端,例如智能手表等,本发明实施例对移动终端的具体类型不作限定,所述终端的操作系统可以包括Android(安卓)、Harmony(鸿蒙)OS、IOS、WindowsPhone、Windows、Linux等等,本发明实施例对此不作过多的限制。
具体应用中,学习平台可以包括鉴权模块、考试模块、社区模块、课程模块、系统模块、统一部署模块等,当然也可以包括其他的模块,如登录模块等,本发明实施例对此不作过多的限制;
实际应用到本发明实施例中,可以获取到多个用户数字ID,该用户数字ID可以为数字形式的标识,其可以用于标识数据库中用户的账号等,本发明实施例对此不作过多的限制。
本发明实施例中,所述获取多个用户数字ID,包括:当批量检索数值类型数据时,取多个用户数字ID。即在批量检索数据类型数据的应用情景下,获取到数据库中的多个用户数字ID。
步骤102,针对所述用户数字ID进行分类,获取连续的用户数字ID;
本发明实施例,可以首先将用户数字ID排序,可以依次从小至大将用户数字ID进行排序,也可以将用户数字ID依次从大至小进行排序,本发明实施例对此不作过多的限制;
在排序之后,还可以针对用户数字ID里面的每一个元素进行判断步骤,看下一个元素是否为上一个元素与一的和,即可以判断上一元素与下一元素是否连续,若连续,则确定该用户数字ID为连续的用户数字ID
本发明实施例中,参照图2,示出了本发明实施例的一种连续的用户数字ID获取步骤的流程示意图,所述针对所述用户数字ID进行分类,获取连续的用户数字ID,包括以下子步骤:
子步骤11,针对用户数字ID进行排序,获得依次排列的用户数字ID;
子步骤12,判断所述依次排列的每个用户数字ID中的当前元素与下一元素是否连续;
子步骤13,当所述述依次排列的每个用户数字ID中的当前元素与下一元素都连续时,则确定用户数字ID为连续的用户数字ID。
举例而言,当用户数字ID为123、78910111213141516、17、19、21,可以针对上述的用户数字ID进行排序,可得:17、19、21、123、78910111213141516;再针对每个用户数字ID进行是否连续的判断,得到连续的用户数字ID为:123、78910111213141516。
步骤103,确定所述连续的用户数字ID的集合为第一集合;
进一步应用到本发明实施例中,将该连续的用户数字ID的集合为第一集合,举例而言,将上述的连续的用户数字ID:123、78910111213141516确定为第一集合。
步骤104,将所述第一集合压缩为预设格式的压缩数据。
具体应用到本发明实施例中,还可以将第一集合压缩为预设格式的压缩数据,举例而言,可以将上述的连续的用户数字ID:123、78910111213141516压缩为between 1and3、between 7and 16,本发明实施例中,通过算法压缩检索数值类型,提升计算设备性能,在大量数据场景下,数据库批量检索数值类型数据,需要算法压缩减少网络与数据库资源的浪费。
本发明实施例的一种优选实施例中,所述将所述第一集合压缩为预设格式的压缩数据,包括:将所述第一集合压缩为包含每个的连续的用户数字ID的第一个元素及最后一个元素的压缩数据,即可以压缩为between 1and 3、between 7and 16,或其它形式压缩数据,本发明实施例对此不作过多的限制。
另一方面,所述方法还包括:将除所述连续的用户数字ID的集合以外的用户数字ID确定为第二集合。也可以将除所述连续的用户数字ID的集合以外的用户数字ID确定为第二集合,即将17、19、21确定为第二集合,可以添加至in的集合中,如in(17、19、21)。
本发明实施例中,该数据的压缩方法包括:获取多个用户数字ID;针对所述用户数字ID进行分类,获取连续的用户数字ID;确定所述连续的用户数字ID的集合为第一集合;将所述第一集合压缩为预设格式的压缩数据;本发明实施例中,通过算法压缩检索数值类型,提升计算设备性能,在大量数据场景下,数据库批量检索数值类型数据,需要算法压缩减少网络与数据库资源的浪费,减少缺陷的产生。
为了使本领域技术人员更好了理解本发明实施例,以下通过一个具体示例进行说明:
在大量数据场景下,数据库批量检索数值类型数据,需要算法压缩减少网络与数据库资源的浪费。
整个处理过程:
在应用层将传入的数据库的数值列表进行分析后,得到两个集合,一个为数值不连续集合(1,3,5),一个为数值连续的集合(1,2,3)只记录上限(1)下限,(3)。数据库则循环2个集合,将不连续集合循环到in(1,3,5),连续列表循环between 1and 3。以此来提高性能。
1)首先根据数值列表压缩数值得到压缩后的数据,根据算法压缩检索数值类型,提升性能,减少bug的产生。
2)压缩数值列表以提高性能。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明实施例的一种数据的压缩装置实施例的结构框图,具体可以包括如下模块:
获取模块301,用于获取多个用户数字ID;
分类模块302,用于针对所述用户数字ID进行分类,获取连续的用户数字ID;
第一集合确定模块303,用于确定所述连续的用户数字ID的集合为第一集合;
压缩模块304,用于将所述第一集合压缩为预设格式的压缩数据。
优选地,所述装置还包括:
第二集合确定模块,用于将除所述连续的用户数字ID的集合以外的用户数字ID确定为第二集合。
优选地,所述分类模块包括:
排序子模块,用于针对用户数字ID进行排序,获得依次排列的用户数字ID;
判断子模块,用于判断所述依次排列的每个用户数字ID中的当前元素与下一元素是否连续;
确定子模块,用于当所述述依次排列的每个用户数字ID中的当前元素与下一元素都连续时,则确定用户数字ID为连续的用户数字ID。
优选地,所述压缩模块包括:
压缩子模块,用于将所述第一集合压缩为包含每个的连续的用户数字ID的第一个元素及最后一个元素的压缩数据。
优选地,所述获取模块包括:
获取子模块,用于当批量检索数值类型数据时,获取多个用户数字ID。
上述数据的压缩装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述提供的数据的压缩装置可用于执行上述任意实施例提供的数据的压缩方法,具备相应的功能和有益效果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据的压缩方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取多个用户数字ID;
针对所述用户数字ID进行分类,获取连续的用户数字ID;
确定所述连续的用户数字ID的集合为第一集合;
将所述第一集合压缩为预设格式的压缩数据。
优选地,所述方法还包括:
将除所述连续的用户数字ID的集合以外的用户数字ID确定为第二集合。
优选地,所述针对所述用户数字ID进行分类,获取连续的用户数字ID,包括:
针对用户数字ID进行排序,获得依次排列的用户数字ID;
判断所述依次排列的每个用户数字ID中的当前元素与下一元素是否连续;
当所述述依次排列的每个用户数字ID中的当前元素与下一元素都连续时,则确定用户数字ID为连续的用户数字ID。
优选地,所述将所述第一集合压缩为预设格式的压缩数据,包括:
将所述第一集合压缩为包含每个的连续的用户数字ID的第一个元素及最后一个元素的压缩数据。
优选地,所述获取多个用户数字ID,包括:
当批量检索数值类型数据时,获取多个用户数字ID。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取多个用户数字ID;
针对所述用户数字ID进行分类,获取连续的用户数字ID;
确定所述连续的用户数字ID的集合为第一集合;
将所述第一集合压缩为预设格式的压缩数据。
优选地,所述方法还包括:
将除所述连续的用户数字ID的集合以外的用户数字ID确定为第二集合。
优选地,所述针对所述用户数字ID进行分类,获取连续的用户数字ID,包括:
针对用户数字ID进行排序,获得依次排列的用户数字ID;
判断所述依次排列的每个用户数字ID中的当前元素与下一元素是否连续;
当所述述依次排列的每个用户数字ID中的当前元素与下一元素都连续时,则确定用户数字ID为连续的用户数字ID。
优选地,所述将所述第一集合压缩为预设格式的压缩数据,包括:
将所述第一集合压缩为包含每个的连续的用户数字ID的第一个元素及最后一个元素的压缩数据。
优选地,所述获取多个用户数字ID,包括:
当批量检索数值类型数据时,获取多个用户数字ID。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据的压缩方法、一种数据的压缩装置、一种计算机设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种数据共享系统