CN110866045A - 一种数据并发统计方法、系统、介质及设备 - Google Patents
一种数据并发统计方法、系统、介质及设备 Download PDFInfo
- Publication number
- CN110866045A CN110866045A CN201911020863.4A CN201911020863A CN110866045A CN 110866045 A CN110866045 A CN 110866045A CN 201911020863 A CN201911020863 A CN 201911020863A CN 110866045 A CN110866045 A CN 110866045A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- memory database
- memory
- sequencing result
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据并发统计方法、系统、介质及设备,该方法包括:当前端为首次访问数据库时,根据查询条件从数据库中筛选数据,并在应用层对筛选的数据进行排序;将排序结果保存到内存数据库中;当前端为非首次访问数据库时,根据查询条件从所述内存数据库中获取所述排序结果并返回给前端。本发明通过应用层对从数据库获取的数据进行排序并在内存数据库中缓存,避免了在数据库中进行成本较高的排序操作,并且减少了数据库中的查询操作,从而明显降低了数据库的负载,减少了数据库崩溃的次数,另外,内存数据库以内存作为数据存储介质,可以大大提高读写数据的效率,提升了后台的扩展能力并改善了用户体验。
Description
技术领域
本发明涉及软件开发技术领域,具体涉及一种数据并发统计方法、系统、介质及设备。
背景技术
在进行数据统计时需要连接数据库,通过数据库进行数据的筛选、排序和统计等工作,但由于数据库的连接数和连接时长是有限制的,当连接数据库的请求过多,超出了数据库能承受的范围,容易导致数据库崩溃,使正在运行的项目挂掉,给用户带来极差的使用体验。
发明内容
针对上述技术问题,本发明提供一种数据并发统计方法、系统、介质及设备。
本发明解决上述技术问题的技术方案如下:一种数据并发统计方法,包括:
当前端为首次访问数据库时,根据查询条件从数据库中筛选数据,并在应用层对筛选的数据进行排序;
将排序结果保存到内存数据库中;
当前端为非首次访问数据库时,根据查询条件从所述内存数据库中获取所述排序结果并返回给前端。
本发明的有益效果是:通过应用层对从数据库获取的数据进行排序并在内存数据库中缓存,避免了在数据库中进行成本较高的排序操作,并且减少了数据库中的查询操作,从而明显降低了数据库的负载,减少了数据库崩溃的次数,另外,内存数据库以内存作为数据存储介质,可以大大提高读写数据的效率,提升了后台的扩展能力并改善了用户体验。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述内存数据库采用分布式内存数据库。
采用上述进一步方案的有益效果是,采用分布式内存数据库可以提升高并发时的数据读写效率,提高数据访问速度。
进一步,该方法还包括:
当数据库中的数据发生变化时,更新所述内存数据库中的排序结果。
进一步,所述将排序结果存到内存数据库中,具体包括:
通过对应的键和键值在内存数据库中保存排序结果,其中,键是所述排序结果在所述内存数据库中的名称,键值是所述排序结果。
进一步,所述从所述内存数据库中获取所述排序结果并返回给前端,具体包括:
在所述内存数据库中,调用键查询对应的键值并返回给前端。
进一步,该方法还包括:
对键值存入所述内存数据库的缓存时间进行计时;
当所述缓存时间超过预设的超时时间时,从所述内存数据库中清除所述键对应的键值;
当所述键被调用时,重置所述键对应的键值的缓存时间。
采用上述进一步方案的有益效果是,通过每次调用键时重置缓存时间,并在缓存时间超过预设的超时时间时及时清除缓存,可以防止内存数据库崩溃时导致无法访问。
为实现上述发明目的,本发明还提供一种数据并发统计系统,包括:
筛选排序模块,用于当前端为首次访问数据库时,根据查询条件从数据库中筛选数据,并在应用层对筛选的数据进行排序;
保存模块,用于将排序结果保存到内存数据库中;
返回模块,用于当前端为非首次访问数据库时,根据查询条件从所述内存数据库中获取所述排序结果并返回给前端。
进一步,所述内存数据库采用分布式内存数据库。
进一步,所述系统还包括:
更新模块,用于当数据库中的数据发生变化时,更新所述内存数据库中的排序结果。
进一步,所述保存模块,具体用于:
通过对应的键和键值在内存数据库中保存排序结果,其中,键是所述排序结果在所述内存数据库中的名称,键值是所述排序结果。
进一步,所述返回模块,具体用于:
在所述内存数据库中,调用键查询对应的键值并返回给前端。
进一步,所述系统还包括:
计时模块,用于对键值存入所述内存数据库的缓存时间进行计时;
清除模块,用于当所述缓存时间超过预设的超时时间时,从所述内存数据库中清除所述键对应的键值;
重置模块,用于当所述键被调用时,重置所述键对应的键值的缓存时间。
本发明还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述方法。
本发明还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
附图说明
图1为本发明实施例提供的一种数据并发统计方法的流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明实施例提供的一种数据并发统计方法的流程图,如图1所示,该方法包括:
S1、当前端为首次访问数据库时,根据查询条件从数据库中筛选数据,并在应用层对筛选的数据进行排序;
具体的,首次访问数据库的时候,根据需求决定的条件来对数据库中的数据进行筛选和排序,例如,需要获得用户答题排行榜,那么就要查询用户答题记录表,按照用户ID进行分组统计出用户的总的答题数量,根据总的答题数量进行排序。
如果需要频繁读库或者用户数量巨大,会造成数据库压力过大,而且数据库的排序,实际上成本是非常高的,消耗内存、CPU,如果并发的排序很多,数据库很容易到瓶颈。考虑整个web的可伸缩性和整体性能,在应用层排序明显会降低数据库的负载,从而提升整个网站的扩展能力。针对某些类型的内存数据库,也可将筛选得到的数据保存到内存数据库中进行排序。
S2、将排序结果保存到内存数据库中;
具体的,内存数据库以内存作为数据存储介质,可以大大提高读写数据的效率,并且,采用分布式内存数据库,例如Redis,可以进一步提升高并发时的数据读写效率,提高数据访问速度,Redis数据库可购买或者在本地搭建。
筛选出来的数据进行排序后即为排序结果,排序结果可按照有序集合的方式保存到内存数据库中,具体可按照key-value对应的方式,key(键)是排序结果在内存数据库中的名称,value(键值)是排序结果。
另外,为了满足深度的分析需求,还可将内存数据库中的数据同步到关系型数据库中。
S3、当前端为非首次访问数据库时,根据查询条件从所述内存数据库中获取所述排序结果并返回给前端。
具体的,在前端非首次访问数据库时,即可直接在内存数据库中,调用键查询对应的键值并返回给前端,减少了在数据库中的查询操作,降低了数据库的负载。
可选地,在该实施例中,该方法还包括:
S4、当数据库中的数据发生变化时,更新所述内存数据库中的排序结果。
具体的,以用户答题排行榜为例,当某个用户的答题数量发生变化的时候,查询该用户的答题数量是否大于当前排行榜的最后一名的答题数量,如果大于就存到内存数据库中,对数据库中原先保存的排行榜进行更新,例如存到redis中,数据类型是有序集合,调用reids方法sort key即可完成排序更新(sort是redis函数,key是存到redis里面的键),小于就忽略掉。
可选地,在该实施例中,该方法还包括:
S5、对键值存入所述内存数据库的缓存时间进行计时;
S6、当所述缓存时间超过预设的超时时间时,从所述内存数据库中清除所述键对应的键值;
S7、当所述键被调用时,重置所述键对应的键值的缓存时间。
具体的,该实施例中,通过每次调用键时重置缓存时间,并在缓存时间超过预设的超时时间时及时清除缓存,可以防止内存数据库崩溃时导致无法访问。
本发明实施例提供一种数据并发统计系统,该系统中各个功能模块的原理已在前面进行了具体阐述,以下不再赘述,该系统包括:
筛选排序模块,用于当前端为首次访问数据库时,根据查询条件从数据库中筛选数据,并在应用层对筛选的数据进行排序;
保存模块,用于将排序结果保存到内存数据库中;
返回模块,用于当前端为非首次访问数据库时,根据查询条件从所述内存数据库中获取所述排序结果并返回给前端。
可选地,在该实施例中,所述内存数据库采用分布式内存数据库。
可选地,在该实施例中,所述系统还包括:
更新模块,用于当数据库中的数据发生变化时,更新所述内存数据库中的排序结果。
可选地,在该实施例中,所述保存模块,具体用于:
通过对应的键和键值在内存数据库中保存排序结果,其中,键是所述排序结果在所述内存数据库中的名称,键值是所述排序结果。
可选地,在该实施例中,所述返回模块,具体用于:
在所述内存数据库中,调用键查询对应的键值并返回给前端。
可选地,在该实施例中,所述系统还包括:
计时模块,用于对键值存入所述内存数据库的缓存时间进行计时;
清除模块,用于当所述缓存时间超过预设的超时时间时,从所述内存数据库中清除所述键对应的键值;
重置模块,用于当所述键被调用时,重置所述键对应的键值的缓存时间。本发明实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述方法实施例中的方法步骤;或者存储上述系统实施例的各个软件模块对应的指令。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法实施例中的方法步骤。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据并发统计方法,其特征在于,包括:
当前端为首次访问数据库时,根据查询条件从数据库中筛选数据,并在应用层对筛选的数据进行排序;
将排序结果保存到内存数据库中;
当前端为非首次访问数据库时,根据查询条件从所述内存数据库中获取所述排序结果并返回给前端。
2.根据权利要求1所述的一种数据并发统计方法,其特征在于,所述内存数据库采用分布式内存数据库。
3.根据权利要求1所述的一种数据并发统计方法,其特征在于,还包括:
当数据库中的数据发生变化时,更新所述内存数据库中的排序结果。
4.根据权利要求1至3任一项所述的一种数据并发统计方法,其特征在于,所述将排序结果存到内存数据库中,具体包括:
通过对应的键和键值在内存数据库中保存排序结果,其中,键是所述排序结果在所述内存数据库中的名称,键值是所述排序结果。
5.根据权利要求4所述的一种数据并发统计方法,其特征在于,所述从所述内存数据库中获取所述排序结果并返回给前端,具体包括:
在所述内存数据库中,调用键查询对应的键值并返回给前端。
6.根据权利要求4所述的一种数据并发统计方法,其特征在于,还包括:
对键值存入所述内存数据库的缓存时间进行计时;
当所述缓存时间超过预设的超时时间时,从所述内存数据库中清除所述键对应的键值;
当所述键被调用时,重置所述键对应的键值的缓存时间。
7.一种数据并发统计系统,其特征在于,包括:
筛选排序模块,用于当前端为首次访问数据库时,根据查询条件从数据库中筛选数据,并在应用层对筛选的数据进行排序;
保存模块,用于将排序结果保存到内存数据库中;
返回模块,用于当前端为非首次访问数据库时,根据查询条件从所述内存数据库中获取所述排序结果并返回给前端。
8.根据权利要求7所述的一种数据并发统计系统,其特征在于,还包括:
更新模块,用于当数据库中的数据发生变化时,更新所述内存数据库中的排序结果。
9.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使所述计算机执行根据权利要求1至6任一项所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911020863.4A CN110866045A (zh) | 2019-10-25 | 2019-10-25 | 一种数据并发统计方法、系统、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911020863.4A CN110866045A (zh) | 2019-10-25 | 2019-10-25 | 一种数据并发统计方法、系统、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866045A true CN110866045A (zh) | 2020-03-06 |
Family
ID=69652915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911020863.4A Pending CN110866045A (zh) | 2019-10-25 | 2019-10-25 | 一种数据并发统计方法、系统、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866045A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035524A (zh) * | 2020-09-02 | 2020-12-04 | 中国银行股份有限公司 | 列表数据查询方法、装置、计算机设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853727A (zh) * | 2012-11-29 | 2014-06-11 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及系统 |
CN107644071A (zh) * | 2017-09-18 | 2018-01-30 | 广州爱九游信息技术有限公司 | 缓存更新方法、装置及数据存储系统 |
CN108491450A (zh) * | 2018-02-26 | 2018-09-04 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
CN109656957A (zh) * | 2018-12-14 | 2019-04-19 | 中国银行股份有限公司 | 基于持久层框架的数据查询方法及装置 |
-
2019
- 2019-10-25 CN CN201911020863.4A patent/CN110866045A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853727A (zh) * | 2012-11-29 | 2014-06-11 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及系统 |
CN107644071A (zh) * | 2017-09-18 | 2018-01-30 | 广州爱九游信息技术有限公司 | 缓存更新方法、装置及数据存储系统 |
CN108491450A (zh) * | 2018-02-26 | 2018-09-04 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
CN109656957A (zh) * | 2018-12-14 | 2019-04-19 | 中国银行股份有限公司 | 基于持久层框架的数据查询方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035524A (zh) * | 2020-09-02 | 2020-12-04 | 中国银行股份有限公司 | 列表数据查询方法、装置、计算机设备及可读存储介质 |
CN112035524B (zh) * | 2020-09-02 | 2024-04-19 | 中国银行股份有限公司 | 列表数据查询方法、装置、计算机设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769126B1 (en) | Data entropy reduction across stream shard | |
US7174345B2 (en) | Methods and systems for auto-partitioning of schema objects | |
US7921085B2 (en) | Method and system for quantifying a data page repetition pattern for a database index in a database management system | |
US8055666B2 (en) | Method and system for optimizing database performance | |
Ashayer et al. | Predicate matching and subscription matching in publish/subscribe systems | |
US7263520B2 (en) | Fast aggregation of compressed data using full table scans | |
US20100223227A1 (en) | Statistical Applications in OLTP Environment | |
CN107025243A (zh) | 一种资源数据的查询方法、查询客户端和查询系统 | |
CN111680063B (zh) | Elasticsearch分页查询数据的方法及装置 | |
US20110113201A1 (en) | Garbage collection in a cache with reduced complexity | |
Puppin et al. | Tuning the capacity of search engines: Load-driven routing and incremental caching to reduce and balance the load | |
US11803521B2 (en) | Implementation of data access metrics for automated physical database design | |
CN107577787B (zh) | 关联数据信息入库的方法及系统 | |
CN112527824B (zh) | 分页查询方法、装置、电子设备和计算机可读存储介质 | |
US20230185816A1 (en) | Columnar Techniques for Big Metadata Management | |
CN114116762A (zh) | 一种离线数据模糊搜索方法、装置、设备和介质 | |
US9305045B1 (en) | Data-temperature-based compression in a database system | |
CN110866045A (zh) | 一种数据并发统计方法、系统、介质及设备 | |
CN106874332A (zh) | 数据库访问方法和装置 | |
CN113010539A (zh) | 一种数据处理方法及装置 | |
CN106446080B (zh) | 数据查询的方法、查询服务设备、客户端设备和数据系统 | |
CN116257672A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN115827663A (zh) | 一种物化视图的方法以及相关设备 | |
US20220405288A1 (en) | Storage of data structures | |
Rodríguez et al. | Dynamic vertical partitioning of multimedia databases using active rules |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200306 |
|
RJ01 | Rejection of invention patent application after publication |