CN109344197B - 基于大数据的分页下载方法和装置 - Google Patents
基于大数据的分页下载方法和装置 Download PDFInfo
- Publication number
- CN109344197B CN109344197B CN201811070089.3A CN201811070089A CN109344197B CN 109344197 B CN109344197 B CN 109344197B CN 201811070089 A CN201811070089 A CN 201811070089A CN 109344197 B CN109344197 B CN 109344197B
- Authority
- CN
- China
- Prior art keywords
- query
- page
- data
- paging
- current
- 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 Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于大数据的分页下载方法、装置、计算机设备和存储介质。其中方法包括:接收用户终端的查询指令;根据接收的查询指令,获取用户终端传递的查询条件参数;根据查询条件参数,对数据库进行分页查询,生成分页查询的查询数据总表;其中,分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的当前查询页的分页数据写入查询数据总表中;返回查询数据总表至用户终端。上述方法,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,无需再重复查询前面已查询分页的数据,减少了查询次数,提升了数据查询的效率。
Description
技术领域
本发明涉及大数据技术领域,特别是涉及一种基于大数据的分页下载方法、装置和计算机设备。
背景技术
随着大数据时代的来临,面对每时每刻迅速增长的庞大数据,因为其数量大,速度快,种类多和准确性的特征,如何更好地利用大数据创造有意义的价值,一直是我们探索的重要话题。
现在,越来越多的企业应用到了大数据的技术,顺应了大数据时代的产品发展趋势,而大数据所带来的效益也有目共睹,以大数据的手段处理,筛选有效的数据,在合理时间内达到撷取、管理、处理、并整理数据,使之成为帮助企业经营决策更积极目的的资讯。但是,随之而来的是数据量的越发庞大,在查询下载数据的时候不能避免地会遇到查询性能的问题,提高查询性能,优化查询速度,也显得越来越重要。
优化查询速度的方法有很多:从硬件层面优化,可以优化数据库的硬件配置,提高数据库性能,或者增加数据库的数量,实行读写分离,主从同步,但这样做需要资金的支持。从技术层面来说,可以从数据库的优化方面来着手,索引的应用,表结构的优化,查询语句的优化,也是有效,但是在数据量大的时候,起到的效果并不很大。
大数据系统一般都具有数据的查询下载的功能,在百万级数据的情况下,常规数据库的数据查询方法会一次性将所有符合条件的数据查出,再生成电子表格(Excel)文件供用户下载,但是当数据量很大的时候,查询下载速度也会呈正比例增加,查询结果要等待许久才出来,数据下载效率低下。
发明内容
基于此,有必要针对上述大数据系统中数据下载效率低下的技术问题,提供一种基于大数据的分页下载方法、装置、计算机设备和计算机可读存储介质。
一种基于大数据的分页下载方法,包括以下步骤:
接收用户终端的查询指令;
根据接收的查询指令,获取用户终端传递的查询条件参数;
根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
返回所述查询数据总表至用户终端。
本发明的上述基于大数据的分页下载方法,通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
在一个实施例中,所述查询条件参数包括用户ID和标签值,其中,标签值指的该用户输入的用于筛选目标数据的条件参数,用户ID是指输入该标签值的对应用户的账户ID,所述根据接收的查询指令,获取用户终端传递的查询条件参数之后,还包括:
将所述标签值转换为对应的SQL语句;
根据所述用户ID和SQL语句,对所述数据库中符合所述SQL语句的数据进行查询,生成查询信息表;其中所述查询信息表包括用户ID、查询到的数据总条数、SQL语句以及第一页查询数据总表;
返回所述查询信息表至用户终端;
所述根据所述查询条件参数,对所述数据库进行分页查询包括:
在接收到所述用户终端的下载指令时,查找所述查询信息表得到查询的SQL语句,根据所述SQL语句,对所述数据库中符合所述SQL语句的数据进行分页查询。
上述实施例的技术方案,将用户输入的标签值转换为对应的SQL语句,该SQL语句可用于数据库中对应数据的筛选,由于数据总条数和第一页查询数据总表的查询时间相比较于所有页数符合条件的查询数据总表的查询,查询时间短,用户终端的网页可以快速显示符合用户输入的查询条件的数据总条数和第一页查询数据总表,以实现用户查询的快速反馈,避免用户长期等待,提升用户体验。将生成的SQL语句预存入查询信息表中,在后续的分页查询过程中,无需用户终端再传递查询条件参数重新生成SQL语句,可以直接从查询信息表中读取已存的SQL语句,可以有效提升效率。
在一个实施例中,所述根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表包括:
获取当前查询页的分页查询参数;其中,所述分页查询参数包括总页码值、上一查询页的最后一条数据的主键ID和当前查询页码值;其中,所述当前查询页码值的初始值为1,所述总页码值根据符合所述查询条件参数的数据总条数以及设置的每页数据条数计算得出;
以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
若当前查询页码值小于总页码值,则将当前查询页码值加1,返回重复上述获取当前查询页的分页查询参数的步骤;
若当前查询页码值与总页码值相同,则返回所述查询数据总表至用户终端。
上述实施例的技术方案,通过计算的分页查询的数据总条数,以及当前查询页码值的更新累计,逐页进行数据分页查询并将查询的数据存入查询数据总表,直至分页查询的当前查询页码值达到总页码值,即完成所需的数据查询,实现准确高效地分页查询。
在一个实施例中,所述获取当前查询页的分页查询参数包括:
接收用户终端的下载指令;所述用户终端的下载指令携带当前查询页的分页查询参数;
根据接收的下载指令,获取当前查询页的分页查询参数;
所述若当前查询页码值小于总页码值,则将当前查询页码值加1,返回执行所述获取当前查询页的分页查询参数的步骤包括:
若当前查询页码值小于总页码值,则返回当前查询页的最后一条数据的主键ID和当前查询页码值至用户终端;其中,所述当前查询页码值用于触发所述用户终端更新接收的所述当前查询页码值加1,生成携带更新的所述当前查询页码值和上一查询页的最后一条数据的主键ID的下载指令,发送所述下载指令至服务器。
上述实施例的技术方案,通过服务器在每一个分页下载完成均返回至用户终端页面当前下载进度的相关参数,用户终端页面可以实时展示当前分页下载的进度,例如在一个实施例中,用户终端页面在用户等待下载的时候可以展示提示信息:“当前以每页100条数据写入,正在处理第3页,共10页需要处理”,并会实时改变,用户可以实时获知当前后台的服务器分页下载的进度,提升了用户体验。此外,将服务器下载的分页下载参数发送至用户终端进行更新后再返回后端进行下一页的分页查询,后端在接收到用户终端的分页查询参数后才执行对应页的分页查询,从而用户可以在下载过程中通过用户终端页面中断该分页查询参数的传递以实时中断或取消下载,下载更灵活,且可以避免用户取消下载后后端仍然继续分页下载导致的资源浪费,提升服务器资源的使用效率。
在一个实施例中,以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的当前查询页的分页数据包括:
以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的预设的偏移量的数据,为当前查询页的分页数据。
在一个实施例中,在对当前查询页进行分页查询时,对应分页查询的偏移量依照下式得出:
Offset(n)=(N-1-(n-1))×d
上式中,n为当前查询页码值,(n-1)为上一查询页码值,N为总页码值,d为每页显示条数值,Offset(n)为当前查询页的分页查询的偏移量。
本发明上述实施例的技术方案,在进行分页查询时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的预设的偏移量的数据,为当前查询页的分页数据,改进的当前查询页的偏移量减去了前面已查询查询页的数据量,配合主键ID索引,大大减少了各个查询页需要分页查询的数据量,提升了查询效率。
一种基于大数据的分页下载装置,包括:
查询指令接收模块,用于接收用户终端的查询指令;
查询条件获取模块,用于根据接收的查询指令,获取用户终端传递的查询条件参数;
分页查询模块,用于根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
查询数据下载模块,用于返回所述查询数据总表至用户终端。
本发明的上述基于大数据的分页下载装置,通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收用户终端的查询指令;
根据接收的查询指令,获取用户终端传递的查询条件参数;
根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
返回所述查询数据总表至用户终端。
上述计算机设备,其处理器执行程序时,通过实现如上步骤,从而可以通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收用户终端的查询指令;
根据接收的查询指令,获取用户终端传递的查询条件参数;
根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
返回所述查询数据总表至用户终端。
上述计算机可读存储介质,其存储的计算机程序,通过实现如上步骤,从而可以通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
附图说明
图1为一个实施例中基于大数据的分页下载方法的应用环境图;
图2为一个实施例中基于大数据的分页下载方法的流程示意图;
图3为一个实施例中标签与用户的关联表的结构示意图;
图4为另一个实施例中查询信息表的结构示意图;
图5为一个实施例中基于大数据的分页下载装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供的基于大数据的分页下载方法,可以应用于如图1所示的应用环境中。其中,用户终端102通过网络与服务器104进行通信。用户终端102发送查询指令至服务器104,服务器104在服务器104内存储的数据库中根据查询指令查询对应的数据返回给用户终端102。其中,用户终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于大数据的分页下载方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S210,接收用户终端的查询指令;
以用户终端为个人计算机为例,用户终端可以装有应用程序或浏览器,用户通过该应用程序或浏览器的网页输入对应的查询条件参数,用户终端即生成对应的查询指令发送至服务器。
在此步骤中,服务器可以接收用户终端发来的查询指令。
以会员系统的标签模块的下载查询结果功能来举例说明,该标签模块的功能是用户可勾选特点标签,筛选符合要求的用户。该系统服务器存储的用户数量可达百万级。
示例标签与用户的关联表user_tag_rela的表结构如图3所示,该图3表示每个用户与其所拥有标签的关系,其中,图3中标签字段下的值,对应的是该标签的值的主键ID(又可称主键标识)。举个例子,有一个性别的标签,标签下有2个不同的值,标签值是1对应的是男,标签值是2对应的是女。其他标签以此类推。用户在用户终端的页面上勾选一个标签性别是男的时候,实际会把男对应的标签值1传到服务器做逻辑处理。
S220,根据接收的查询指令,获取用户终端传递的查询条件参数;
在此步骤中,服务器可以根据接收的查询指令,提取出其中用户输入的用于进行查询的条件限定的查询条件参数。
同样以会员系统的标签模块的下载查询结果功能来举例说明,则在此步骤中,服务器可以将接收的携带标签值的指令提取出标签值,并将标签值转换成性别男的查询条件参数,用于对数据库中匹配的用户数据进行筛查。
S230,根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
在此步骤中,服务器可以根据前述步骤获取的所述查询条件参数,对数据库进行分页查询,查询出数据库中预存数据中符合所述查询条件参数的数据,将查询的参数存入生成的查询数据总表中。
同样以会员系统的标签模块的下载查询结果功能来举例说明,则在此步骤中,服务器可以分页查询出数据库中存储的用户数据中,符合性别男的所有用户数据,将这些用户数据一页页存入一个总的Excel表中。在进行分页查询时,可以初始化参数var lastId=0;用于作为主键ID,并在每一页分页查询后更新该参数var lastId为当页最后一条数据的主键ID,下一页的分页查询数据即可以以上一页主键ID索引的数据为准查询后续的数据,而不用再重复查询之前已经查询过的数据。
S240,返回所述查询数据总表至用户终端。
在此步骤中,服务器将分页查询生成的查询数据总表返回至用户终端。
本发明的上述基于大数据的分页下载方法,通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
在一个实施例中,S220和S230中所述查询条件参数包括用户ID和标签值,其中,标签值指的该用户输入的用于筛选目标数据的条件参数,用户ID是指输入该标签值的对应用户的账户ID,S220所述根据接收的查询指令,获取用户终端传递的查询条件参数之后,还包括:
S2201,将所述标签值转换为对应的SQL语句;
S2202,根据所述用户ID和SQL语句,对所述数据库中符合所述SQL语句的数据进行查询,生成查询信息表;其中所述查询信息表包括用户ID、查询到的数据总条数、SQL语句以及第一页查询数据总表;
其中,所述第一页查询数据总表可用于用户终端的首页查询数据显示。
S2203,返回所述查询信息表至用户终端;
S230所述根据所述查询条件参数,对所述数据库进行分页查询包括:
S2301,在接收到所述用户终端的下载指令时,查找所述查询信息表得到查询的SQL语句,根据所述SQL语句,对所述数据库中符合所述SQL语句的数据进行分页查询。
仍旧以会员系统的标签模块的下载查询结果功能来举例说明,在分页查询前,首先会处理用户终端页面传过来的用户勾选的标签与其标签值,在服务器将其转换成相应的SQL语句,然后操作数据库查询数据。同时会有一个独特的操作步骤,会将当前用户ID、查询的SQL语句、查询得到的数据总条数,还有查询到的第一页的数据以json形式存到数据库的一个数据表,这个表称之为查询信息表。
如图4所示,为一个实施例的查询信息表结构示意图,图4中示例数据表示的意思是:当前登录系统的ID为100012345的用户,在标签模块的前端页面中查询了性别标签为男的所有用户,上图中count为100,表示此次查询得到100条符合的数据,sql表示此次在user_tag_rela表中查询的sql语句,result表示此次查询的第一页的数据,用于在用户终端页面展示第一页的数据。上述实施例的技术方案,将用户输入的标签值转换为对应的SQL语句,该SQL语句可用于数据库中对应数据的筛选,由于数据总条数和第一页查询数据总表的查询时间相比较于所有页数符合条件的查询数据总表的查询,查询时间短,用户终端的网页可以快速显示符合用户输入的查询条件的数据总条数和第一页查询数据总表,以实现用户查询的快速反馈,避免用户长期等待,提升用户体验。将生成的SQL语句预存入查询信息表中,在后续的分页查询过程中,无需用户终端再传递查询条件参数重新生成SQL语句,可以直接从查询信息表中读取已存的SQL语句,可以有效提升效率。
在一个实施例中,S230所述根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表包括:
S231,获取当前查询页的分页查询参数;其中,所述分页查询参数包括总页码值、上一查询页的最后一条数据的主键ID和当前查询页码值;其中,所述当前查询页码值的初始值为1,所述总页码值根据符合所述查询条件参数的数据总条数以及设置的每页数据条数计算得出;
其中,所述数据总条数可以根据查询条件参数对数据库进行简单的筛查得到,由于这种筛查无需筛查出具体的数据值,只需获取符合筛选条件的数据的总条数,所以该数据总条数可以快速得出。每页数据条数可以根据实际需要设置,例如可以根据实际的显示效果设置用户终端每页显示的数据的条数为对应的每页数据条数。之后,即可以用数据总条数除以每页数据条数并向上取整得到需要分页查询的总页码数。
S232,以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
S233,若当前查询页码值小于总页码值,则将当前查询页码值加1,返回重复上述步骤S231和S232;
S234,若当前查询页码值与总页码值相同,则返回所述查询数据总表至用户终端。
上述实施例的技术方案,通过计算的分页查询的数据总条数,以及当前查询页码值的更新累计,逐页进行数据分页查询并将查询的数据存入查询数据总表,直至分页查询的当前查询页码值达到总页码值,即完成所需的数据查询,实现准确高效地分页查询。
在一个实施例中,S231所述获取当前查询页的分页查询参数包括:
S2311,接收用户终端的下载指令;所述用户终端的下载指令携带当前查询页的分页查询参数;
S2312,根据接收的下载指令,获取当前查询页的分页查询参数;
S233所述若当前查询页码值小于总页码值,则将当前查询页码值加1,返回执行所述获取当前查询页的分页查询参数的步骤包括:
S2331,若当前查询页码值小于总页码值,则返回当前查询页的最后一条数据的主键ID和当前查询页码值至用户终端;其中,所述当前查询页码值用于触发所述用户终端更新接收的所述当前查询页码值加1,生成携带更新的所述当前查询页码值和上一查询页的最后一条数据的主键ID的下载指令,发送所述下载指令至服务器。
同样以会员系统的标签模块的下载查询结果功能来举例说明,在用户终端的页面中的JS中,可以把分页参数用不同的变量保存下来,并初始化赋值。例如:
var pages=1;表示正在执行页码
var downloadPageCount=0;表示总页码
var lastId=0;表示当页最后一条数据的主键ID
然后用户终端可以通过ajax异步请求服务器,并把上面的分页参数传递到服务器。服务器代码根据这些参数和结果表中的SQL取到当前页码的数据。服务器会设置好一个每一页的显示数量的常量,这个常量可以灵活设置,然后可以用公式得到总页数:总页数=查询得到的总数/每一页显示的数量,并赋值给用户终端传过来的变量downloadPageCount。例如每页显示的数量是100条,服务器取到当前页对应的100条数据,并写入到Excel文件保存起来,最后一条记录的主键ID就是本页中第100条数据的主键ID,并赋值给用户终端传过来的变量lastId,最后服务器会一并将上述重新赋值的变量返回给用户终端,用户终端判断当前页码是否小于等于总页码,成立则将当前页码加1,重复上述的前后端交互,服务器将第二页的数据写入Excel文件,以此类推,直到完成整个Excel文件的写入。
上述实施例的技术方案,通过服务器在每一个分页下载完成均返回至用户终端页面当前下载进度的相关参数,用户终端页面可以实时展示当前分页下载的进度,例如在一个实施例中,用户终端页面在用户等待下载的时候可以展示提示信息:“当前以每页100条数据写入,正在处理第3页,共10页需要处理”,并会实时改变,用户可以实时获知当前后台的服务器分页下载的进度,提升了用户体验。此外,将服务器下载的分页下载参数发送至用户终端进行更新后再返回后端进行下一页的分页查询,后端在接收到用户终端的分页查询参数后才执行对应页的分页查询,从而用户可以在下载过程中通过用户终端页面中断该分页查询参数的传递以实时中断或取消下载,下载更灵活,且可以避免用户取消下载后后端仍然继续分页下载导致的资源浪费,提升服务器资源的使用效率。
在一个实施例中,S232以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的当前查询页的分页数据包括:
S2321,以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的预设的偏移量的数据,为当前查询页的分页数据。
在一个实施例中,S2321中在对当前查询页进行分页查询时,对应分页查询的偏移量依照下式得出:
Offset(n)=(N-1-(n-1))×d
上式中,n为当前查询页码值,(n-1)为上一查询页码值,N为总页码值,d为每页显示条数值,Offset(n)为当前查询页的分页查询的偏移量。
现有技术的分页查询,以MYSQL的分页查询为例,需要使用select命令,配合limit和offset参数可以读取指定范围的记录。以分页查询语句“select*from user_tag_relalimit 10000,20”为例,偏移量offset是10000,后边的20表示的是每页的显示20条数据,根据offset的值,查询10020次主键索引的数据,最后将之前的10000条丢弃,取出最后20条。上面的语句中的limit后面的数字代表偏移量offset,上述例子说明偏移量越大,所需要查询的数据量越大,查询时间越长。
而本发明上述实施例的技术方案,在进行分页查询时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的预设的偏移量的数据,为当前查询页的分页数据,改进的当前查询页的偏移量减去了前面已查询查询页的数据量,配合主键ID索引,大大减少了各个查询页需要分页查询的数据量,提升了查询效率。
在一个实施例中,如图5所示,提供了一种基于大数据的分页下载装置,包括:
查询指令接收模块510,用于接收用户终端的查询指令;
查询条件获取模块520,用于根据接收的查询指令,获取用户终端传递的查询条件参数;
分页查询模块530,用于根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
查询数据下载模块540,用于返回所述查询数据总表至用户终端。
本发明的上述基于大数据的分页下载装置,通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
在一个实施例中,所述分页查询模块530包括:
分页查询参数获取模块,用于获取当前查询页的分页查询参数;其中,所述分页查询参数包括上一查询页的最后一条数据的主键ID和当前查询页码值;其中,所述当前查询页码值的初始值为1,所述总页码值根据数据总条数以及设置的每页数据条数计算得出;
分页查询写入模块,用于以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
页码值更新模块,用于若当前查询页码值小于总页码值,则将当前查询页码值加1,返回执行所述获取当前查询页的分页查询参数的步骤;
查询数据返回模块,用于若当前查询页码值与总页码值相同,则返回所述查询数据总表至用户终端。
在一个实施例中,所述分页查询参数获取模块包括:
下载指令接收模块,用于接收用户终端的下载指令;所述用户终端的下载指令携带当前查询页的分页查询参数;
当前分页查询参数获取模块,用于根据接收的下载指令,获取当前查询页的分页查询参数;
所述页码值更新模块进一步用于:
若当前查询页码值小于总页码值,则返回当前查询页的最后一条数据的主键ID和当前查询页码值至用户终端;其中,所述当前查询页码值用于触发所述用户终端更新接收的所述当前查询页码值加1,生成携带更新的所述当前查询页码值和上一查询页的最后一条数据的主键ID的下载指令,发送所述下载指令至服务器。
在一个实施例中,分页查询写入模块进一步用于:
以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的预设的偏移量的数据,为当前查询页的分页数据。
在一个实施例中,分页查询写入模块执行对当前查询页进行分页查询的步骤时,对应分页查询的偏移量依照下式得出:
Offset(n)=(N-1-(n-1))×d
上式中,n为当前查询页码值,(n-1)为上一查询页码值,N为总页码值,d为每页显示条数值,Offset(n)为当前查询页的分页查询的偏移量。
在一个实施例中,所述查询条件参数包括用户ID和标签值,所述基于大数据的分页下载装置,还包括:
SQL语句转换模块,用于将所述标签值转换为对应的SQL语句;
查询信息表生成模块,用于根据所述用户ID和SQL语句,对所述数据库中符合所述SQL语句的数据进行查询,生成查询信息表;其中所述查询信息表包括用户ID、查询到的数据总条数、SQL语句以及第一页查询数据总表;
查询信息表返回模块,用于返回所述查询信息表至用户终端;
所述分页查询模块530进一步用于:
在接收到所述用户终端的下载指令时,查找所述查询信息表得到查询的SQL语句,根据所述SQL语句,对所述数据库中符合所述SQL语句的数据进行分页查询。
关于基于大数据的分页下载装置的具体限定可以参见上文中对于基于大数据的分页下载方法的限定,在此不再赘述。上述基于大数据的分页下载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明的基于大数据的分页下载装置与本发明的基于大数据的分页下载方法一一对应,在上述基于大数据的分页下载方法的实施例阐述的技术特征及其有益效果均适用于基于大数据的分页下载装置的实施例中,特此声明。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收用户终端的查询指令;
根据接收的查询指令,获取用户终端传递的查询条件参数;
根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
返回所述查询数据总表至用户终端。
上述计算机设备,其处理器执行程序时,通过实现如上步骤,从而可以通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
在其他实施例中,本发明提供的计算机设备,其处理器执行计算机程序时还可以实现如上任意实施例所述基于大数据的分页下载方法的步骤,且具备相应的有益效果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收用户终端的查询指令;
根据接收的查询指令,获取用户终端传递的查询条件参数;
根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
返回所述查询数据总表至用户终端。
上述计算机可读存储介质,其存储的计算机程序,通过实现如上步骤,从而可以通过分页查询数据可以有效提升数据查询效率,且相比于传统的分页查询在查询下一页的分页数据时,需要将前一页的数据也查询出,导致页数越高查询速度越慢,查询效率低的问题,本发明的上述技术方案,下一分页的分页查询以上一分页的最后一个数据生成的主键ID为索引,查询数据库中位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,下一分页在分页查询时无需再重复查询前面已查询分页的数据,大大减少了分页查询的查询次数,提升了数据查询的效率。
在其他实施例中,本发明提供的计算机可读存储介质,其处理器执行计算机程序时还可以实现如上任意实施例所述基于大数据的分页下载方法的步骤,且具备相应的有益效果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于大数据的分页下载方法,其特征在于,包括:
接收用户终端的查询指令;
根据接收的查询指令,获取用户终端传递的查询条件参数,包括:
提取所述查询指令中的标签值,并将所述标签值转换为查询条件参数;所述标签值为用户查询时所选择标签对应的标签值;
根据所述查询条件参数,对数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的预设的偏移量的数据,为当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;其中,所述主键ID对应于所述用户查询时所选择标签的标签值;
返回所述查询数据总表至用户终端;
其中,在对当前查询页进行分页查询时,对应分页查询的偏移量依照下式得出:
2.根据权利要求1所述的基于大数据的分页下载方法,其特征在于,所述根据所述查询条件参数,对所述数据库进行分页查询,生成分页查询的查询数据总表包括:
获取当前查询页的分页查询参数;其中,所述分页查询参数包括总页码值、上一查询页的最后一条数据的主键ID和当前查询页码值;其中,所述当前查询页码值的初始值为1,所述总页码值根据符合所述查询条件参数的数据总条数以及设置的每页数据条数计算得出;
以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
若当前查询页码值小于总页码值,则将当前查询页码值加1,返回执行所述获取当前查询页的分页查询参数的步骤;
若当前查询页码值与总页码值相同,则返回所述查询数据总表至用户终端。
3.根据权利要求2所述的基于大数据的分页下载方法,其特征在于,所述获取当前查询页的分页查询参数包括:
接收用户终端的下载指令;所述用户终端的下载指令携带当前查询页的分页查询参数;
根据接收的下载指令,获取当前查询页的分页查询参数;
所述若当前查询页码值小于总页码值,则将当前查询页码值加1,返回执行所述获取当前查询页的分页查询参数的步骤包括:
若当前查询页码值小于总页码值,则返回当前查询页的最后一条数据的主键ID和当前查询页码值至用户终端;其中,所述当前查询页码值用于触发所述用户终端更新接收的所述当前查询页码值加1,生成携带更新的所述当前查询页码值和上一查询页的最后一条数据的主键ID的下载指令,发送所述下载指令至服务器。
4.根据权利要求1至3任一项所述的基于大数据的分页下载方法,其特征在于,所述查询条件参数包括用户ID和标签值,所述根据接收的查询指令,获取用户终端传递的查询条件参数之后,还包括:
将所述标签值转换为对应的SQL语句;
根据所述用户ID和SQL语句,对所述数据库中符合所述SQL语句的数据进行查询,生成查询信息表;其中所述查询信息表包括用户ID、查询到的数据总条数、SQL语句以及第一页查询数据总表;
返回所述查询信息表至用户终端;
所述根据所述查询条件参数,对所述数据库进行分页查询包括:
在接收到所述用户终端的下载指令时,查找所述查询信息表得到查询的SQL语句,根据所述SQL语句,对所述数据库中符合所述SQL语句的数据进行分页查询。
5.一种基于大数据的分页下载装置,其特征在于,包括:
查询指令接收模块,用于接收用户终端的查询指令;
查询条件获取模块,用于根据接收的查询指令,获取用户终端传递的查询条件参数;
所述查询条件获取模块具体用于提取所述查询指令中的标签值,并将所述标签值转换为查询条件参数;所述标签值为用户查询时所选择标签对应的标签值;
分页查询模块,用于根据所述查询条件参数,对数据库进行分页查询,生成分页查询的查询数据总表;其中,所述分页查询在查询当前查询页时,以上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的预设的偏移量的数据,为当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;其中,所述主键ID对应于所述用户查询时所选择标签的标签值;
查询数据下载模块,用于返回所述查询数据总表至用户终端;
其中,在对当前查询页进行分页查询时,对应分页查询的偏移量依照下式得出:
6.根据权利要求5所述的基于大数据的分页下载装置,其特征在于,所述分页查询模块包括:
分页查询参数获取模块,用于获取当前查询页的分页查询参数;其中,所述分页查询参数包括总页码值、上一查询页的最后一条数据的主键ID和当前查询页码值;其中,所述当前查询页码值的初始值为1,所述总页码值根据数据总条数以及设置的每页数据条数计算得出;
分页查询写入模块,用于以所述上一查询页的最后一条数据的主键ID为索引,查询数据库中符合所述查询条件参数的位于所述上一查询页的最后一条数据之后的当前查询页的分页数据,将查询的所述当前查询页的分页数据写入查询数据总表中;
页码值更新模块,用于若当前查询页码值小于总页码值,则将当前查询页码值加1,返回执行所述获取当前查询页的分页查询参数的步骤;
查询数据返回模块,用于若当前查询页码值与总页码值相同,则返回所述查询数据总表至用户终端。
7.根据权利要求6所述的基于大数据的分页下载装置,其特征在于,所述分页查询参数获取模块具体用于接收用户终端的下载指令;所述用户终端的下载指令携带当前查询页的分页查询参数;根据接收的下载指令,获取当前查询页的分页查询参数。
8.根据权利要求7所述的基于大数据的分页下载装置,其特征在于,所述页码值更新模块具体用于若当前查询页码值小于总页码值,则返回当前查询页的最后一条数据的主键ID和当前查询页码值至用户终端;其中,所述当前查询页码值用于触发所述用户终端更新接收的所述当前查询页码值加1,生成携带更新的所述当前查询页码值和上一查询页的最后一条数据的主键ID的下载指令,发送所述下载指令至服务器。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任意一项所述的基于大数据的分页下载方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的基于大数据的分页下载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811070089.3A CN109344197B (zh) | 2018-09-13 | 2018-09-13 | 基于大数据的分页下载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811070089.3A CN109344197B (zh) | 2018-09-13 | 2018-09-13 | 基于大数据的分页下载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344197A CN109344197A (zh) | 2019-02-15 |
CN109344197B true CN109344197B (zh) | 2021-01-26 |
Family
ID=65305495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811070089.3A Active CN109344197B (zh) | 2018-09-13 | 2018-09-13 | 基于大数据的分页下载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344197B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008243B (zh) * | 2019-03-22 | 2021-05-07 | 新华三大数据技术有限公司 | 一种数据表处理方法及装置 |
CN110569259A (zh) * | 2019-07-26 | 2019-12-13 | 苏宁云计算有限公司 | 一种大批量数据的处理方法及装置 |
CN110569255A (zh) * | 2019-08-16 | 2019-12-13 | 苏宁云计算有限公司 | 数据库分库分表的分页查询方法、装置和计算机设备 |
CN110618972A (zh) * | 2019-08-26 | 2019-12-27 | 达疆网络科技(上海)有限公司 | 一种利用自增Id增进深分页方法 |
CN111611282A (zh) * | 2020-05-25 | 2020-09-01 | 北京同邦卓益科技有限公司 | 用于查询数据的方法和装置 |
CN112416967B (zh) * | 2020-12-11 | 2024-05-14 | 北京北信源软件股份有限公司 | 数据分页查询方法、装置、电子设备及存储介质 |
CN113590623A (zh) * | 2021-07-28 | 2021-11-02 | 上海万物新生环保科技集团有限公司 | 一种用于数据深分页查询的方法、装置及设备 |
CN114039970A (zh) * | 2021-11-11 | 2022-02-11 | 北京沃东天骏信息技术有限公司 | 信息下载方法、装置、电子设备和计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678494A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 客户端同步服务端数据的方法及装置 |
CN103778135A (zh) * | 2012-10-18 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种实时数据的分布存储和分页查询方法 |
CN105760457A (zh) * | 2016-02-05 | 2016-07-13 | 成都康赛信息技术有限公司 | 一种基于MongoDB的数据分页优化方法 |
CN106227894A (zh) * | 2016-08-24 | 2016-12-14 | 中国农业银行股份有限公司 | 一种数据分页查询方法和装置 |
CN107783974A (zh) * | 2016-08-24 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 数据处理系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826085B (zh) * | 2009-12-30 | 2012-01-18 | 厦门市美亚柏科信息股份有限公司 | 一种基于ajax的网页在线导入/导出大文件的方法 |
US10565067B2 (en) * | 2016-03-09 | 2020-02-18 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine backup from cloud operations |
-
2018
- 2018-09-13 CN CN201811070089.3A patent/CN109344197B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778135A (zh) * | 2012-10-18 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种实时数据的分布存储和分页查询方法 |
CN103678494A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 客户端同步服务端数据的方法及装置 |
CN105760457A (zh) * | 2016-02-05 | 2016-07-13 | 成都康赛信息技术有限公司 | 一种基于MongoDB的数据分页优化方法 |
CN106227894A (zh) * | 2016-08-24 | 2016-12-14 | 中国农业银行股份有限公司 | 一种数据分页查询方法和装置 |
CN107783974A (zh) * | 2016-08-24 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 数据处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109344197A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344197B (zh) | 基于大数据的分页下载方法和装置 | |
US11526799B2 (en) | Identification and application of hyperparameters for machine learning | |
CN110659298B (zh) | 财务数据处理方法、装置、计算机设备和存储介质 | |
CN110659282B (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
CN112637305B (zh) | 一种基于缓存的数据存储与查询方法、装置、设备及介质 | |
CN105550206A (zh) | 结构化查询语句的版本控制方法及装置 | |
CN112883030A (zh) | 数据收集方法、装置、计算机设备和存储介质 | |
CN112613271A (zh) | 数据分页方法、装置、计算机设备及存储介质 | |
CN109710681B (zh) | 数据输出方法、装置、计算机设备和存储介质 | |
CN109783498B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN111858581B (zh) | 一种分页查询的方法、装置、存储介质和电子设备 | |
CN114090589A (zh) | 基于HBase的数据查询方法、装置和计算机设备 | |
CN113687825A (zh) | 一种软件模块的构建方法、装置、设备及存储介质 | |
CN110515979B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN113641769B (zh) | 一种数据处理方法及装置 | |
CN114297230A (zh) | 数据处理方法、装置、设备及介质 | |
CN113468258A (zh) | 一种异构数据的转换方法、装置及存储介质 | |
CN112732742B (zh) | 查询页面创建方法、装置、计算机设备和存储介质 | |
CN113535770B (zh) | 数据查询的方法和装置 | |
CN114328615A (zh) | 一种数据导出方法、装置、电子设备及存储介质 | |
CN117909376A (zh) | 一种员工报表数据查询方法、系统、设备及存储介质 | |
CN116319757A (zh) | 一种文件下载方法、装置、存储介质以及电子设备 | |
CN118035423A (zh) | 信息查询方法、装置、计算机设备和存储介质 | |
CN117478723A (zh) | 数据的传输方法、装置、设备及存储介质 | |
CN112905569A (zh) | 一种数据缓存方法、装置、电子设备及存储介质 |
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 |