CN103853727B - 提高大数据量查询性能的方法及系统 - Google Patents
提高大数据量查询性能的方法及系统 Download PDFInfo
- Publication number
- CN103853727B CN103853727B CN201210499321.1A CN201210499321A CN103853727B CN 103853727 B CN103853727 B CN 103853727B CN 201210499321 A CN201210499321 A CN 201210499321A CN 103853727 B CN103853727 B CN 103853727B
- Authority
- CN
- China
- Prior art keywords
- caching
- data
- tables
- distributed
- database
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种提高大数据量查询性能的方法及系统,属于大数据量查询技术领域,所述方法包括:A、将磁盘数据库中的数据以缓存ID‑实体数据的键值对形式加载到分布式缓存中,同时将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中;B、获取客户端发送的查询请求时,依据该查询请求查询缓存ID表,选出符合查询条件的缓存ID集合;C、依据所述缓存ID集合从相应的分布式缓存中获取实体数据并返回客户端。采用本发明能有效减小磁盘数据库的负载,提高大数据的查询性能。
Description
技术领域
本发明涉及大数据量查询技术领域,具体而言,涉及一种提高大数据量查询性能的方法及系统。
背景技术
在信息时代的大背景下,人们接触到的信息越来越多,基于大数据的查询应用变得越来越广泛。大数据的查询效率直接影响到系统的响应时间和用户体验,因此,研究如何提高查询性能至关重要。
在大数据的查询中,一般的做法是将大数据以表的形式存入关系数据库(磁盘数据库,例如Oracle、Sql Server等)中,利用数据库支持的结构化查询语句(SQL语句)执行查询。这种方式下的数据是存储在磁盘文件上的,当请求比较频繁,单个查询比较复杂(关联多个表),且数据量较大时,很容易出现性能瓶颈。
为了提高大数据的查询性能,目前现有技术中具有如下两种解决方法:采用分布式缓存以及采用内存数据库。
分布式缓存,与单机缓存对应,是指将数据缓存于多个不同的主机上,用户可以无差别的存/取数据。分布式缓存不受单机内存的限制,通过增加缓存服务器以增大缓存的容量,扩展性好。
分布式缓存系统负责在内存中维护一个统一巨大的哈希表,可以用来存储各种格式的数据,包括图像、视频、文件以及关系数据库检索的结果等,存/取性能非常高,时间复杂度均为O(1)。通过缓存数据库查询结果,可以减少关系数据库的访问次数,提高系统的响应速度。在数据驱动的应用中,经常需要重复从关系数据库中取出相同的数据,这种重复极大地增加了关系数据库的负载,采用分布式缓存是一个很好的解决办法。
内存数据库,顾名思义就是将数据放在内存中直接进行操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比磁盘数据库的数据处理速度要快很多。
但是,在实际应用当中,若单独使用分布式缓存,将大数据以键值对的形式存入缓存服务器中,将产生相同数目的缓存标识(缓存ID)。当查询数据时,需要根据过滤信息遍历所有的缓存ID,一方面,由于受到缓存系统key长度的限制,缓存ID中无法包括所有的过滤相关信息,另一方面,依次遍历大量的缓存ID效率也比较低。
另外,若单独使用内存数据库,将大量数据加载到内存中,显然会受到内存容量的限制。
发明内容
为了解决现有技术中的大数据量查询性能低下,或需要占用大量的内存资源的问题,本发明的目的在于提供一种提高大数据量查询性能的方法及系统。
为了达到本发明的目的,本发明采用以下技术方案实现:
一种提高大数据量查询性能的方法,包括:
A、将磁盘数据库中的数据以缓存ID-实体数据的键值对形式加载到分布式缓存中,同时将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中;
B、获取客户端发送的查询请求时,依据该查询请求查询缓存ID表,选出符合查询条件的缓存ID集合;
C、依据所述缓存ID集合从相应的分布式缓存中获取实体数据并返回客户端。
优选地,在所述步骤A中,所述关键信息是指客户端发送的查询请求中与查询条件相关的字段信息,其中,所述查询条件包括过滤条件、排序条件、分页条件。
优选地,在所述步骤A中,在执行将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中时,还执行:
将磁盘数据库中的用户权限与过滤条件也分别加载到内存数据库中的用户权限表与过滤条件表中。
优选地,在所述步骤B中,依据查询请求查询缓存ID表,选出符合查询条件的缓存ID集合的步骤为:
依据所述查询请求的查询条件构造SQL语句,对内存数据库中的用户权限表、过滤条件表以及缓存ID表进行关联查询;
利用内存数据库访问接口执行SQL语句,返回满足查询条件的缓存ID集合。
优选地,在执行所述步骤A之后,还包括:
A1、周期地调用磁盘数据库的存储进程获取磁盘数据库的更新数据,并将这些更新数据更新至分布式缓存以及内存数据库中。
优选地,在所述步骤A1中,所述更新包括数据的新增、修改以及删除,将这些更新数据更新至分布式缓存以及内存数据库中的方法为:
对于新增数据,将新增数据以缓存ID-实体数据的键值对形式存入分布式缓存中,同时将所述缓存ID以及实体数据的关键信息插入缓存ID表;
对于修改数据,调用分布式缓存客户端接口函数,将所述修改数据替换分布式缓存中的原有缓存数据,同时更新缓存ID表;
对于删除数据,调用分布式缓存客户端接口函数删除分布式缓存中的原有缓存数据,同时删除缓存ID表中的记录。
一种提高大数据量查询性能的系统,包括:
数据库服务器,用于维护磁盘数据库;
应用服务器,用于将磁盘数据库中的数据以缓存ID-实体数据的键值对形式加载到分布式缓存服务器中,同时将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中;以及进一步用于在获取客户端发送查询请求时,依据该查询请求查询缓存ID表,选出符合查询条件的缓存ID集合,并依据所述缓存ID集合从相应的分布式缓存服务器中获取实体数据并返回客户端;
至少一个分布式缓存服务器,用于缓存应用服务器加载的实体数据;以及进一步用于当应用服务器依据缓存ID集合从分布式缓存服务器取数据时,发送相应的实体数据至应用服务器;
客户端,用于根据获取的数据查询指令向应用服务器发送查询请求,以及进一步用于从应用服务器获取其查询到的实体数据。
优选地,所述关键信息是指客户端发送的查询请求中与查询条件相关的字段信息,其中,所述查询条件包括过滤条件、排序条件、分页条件。
优选地,在应用服务器执行将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中时,还执行:将磁盘数据库中的用户权限与过滤条件也分别加载到内存数据库中的用户权限表与过滤条件表中。
优选地,应用服务器依据查询请求查询缓存ID表,选出符合查询条件的缓存ID集合的方法为:
依据所述查询请求的查询条件构造SQL语句,对内存数据库中的用户权限表、过滤条件表以及缓存ID表进行关联查询;
利用内存数据库访问接口执行SQL语句,返回满足查询条件的缓存ID集合。
优选地,所述应用服务器还用于周期地调用磁盘数据库的存储进程获取磁盘数据库的更新数据,并将这些更新数据更新至分布式缓存以及内存数据库中。
优选地,所述更新包括数据的新增、修改以及删除,所述应用服务器将这些更新数据更新至分布式缓存以及内存数据库中的方法为:
对于新增数据,将新增数据以缓存ID-实体数据的键值对形式存入分布式缓存中,同时将所述缓存ID以及实体数据的关键信息插入缓存ID表;
对于修改数据,调用分布式缓存客户端接口函数,将所述修改数据替换分布式缓存中的原有缓存数据,同时更新缓存ID表;
对于删除数据,调用分布式缓存客户端接口函数删除分布式缓存中的原有缓存数据,同时删除缓存ID表中的记录。
通过上述本发明的技术方案可以看出,本发明具有以下有益效果:
1、在应用服务器的内存中缓存数据,不用每次在接收到客户端发送的查询请求时都访问磁盘数据库,有效地减小了磁盘数据库的负载。
2、将数据加载至分布式缓存和内存数据库以后, 查询的处理都是在内存中完成,相较于磁盘数据库进行I/O操作而言,提高了处理性能。
3、采用分布式缓存和内存数据库相结合的缓存方法,不仅可以利用内存数据库索引高效地完成缓存ID过滤,而且可以从分布式缓存高效地获取对应缓存ID的详细数据,提高了查询大数据量时的查询性能。
附图说明
图1为本发明实施例提供的一种提高大数据量查询性能的方法流程示意图;
图2为本发明实施例提供的一种提高大数据量查询性能的系统结构示意图;
图3为本发明实施例提供的一种提高大数据量查询性能的系统的具体工作流程示意图。
本发明目的的实现、功能特点及优异效果,下面将结合具体实施例以及附图做进一步的说明。
具体实施方式
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
基于现有技术存在的问题,本发明的发明人考虑将分布式缓存以及内存数据库这两种技术相结合,在内存数据库中建立缓存ID表,存储缓存ID和少量关键数据(与过滤、排序以及分页这些查询条件相关的字段),并根据需要建立索引,将大量详细信息存于分布式缓存中。查询数据时,首先利用结构化查询(SQL)语句在内存数据库中过滤出所需的缓存ID集合,再根据缓存ID从分布式缓存中获取详细数据信息。这不仅解决了分布式缓存中过滤缓存ID的效率难题,而且避免了内存数据库中存入大量数据的问题。
如图1所示,本发明实施例提供的一种提高大数据量查询性能的方法,包括如下步骤:
S10、将磁盘数据库中的数据以缓存ID-实体数据的键值对形式加载到分布式缓存中,同时将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中;在该步骤中,优选地,所述关键信息是指客户端发送的查询请求中与查询条件相关的字段信息,其中,所述查询条件包括过滤条件、排序条件、分页条件;
S20、获取客户端发送的查询请求时,依据该查询请求查询缓存ID表,选出符合查询条件的缓存ID集合;
S30、依据所述缓存ID集合从相应的分布式缓存中获取实体数据并返回客户端。
本实施例中,在所述步骤S10中,在执行将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中时,还执行:
将磁盘数据库中的用户权限与过滤条件也分别加载到内存数据库中的用户权限表与过滤条件表中。
在具体实施时,在执行将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中之前,还应当包括如下步骤:
创建缓存ID表,并针对缓存ID和与查询条件相关的字段信息建立索引。
本实施例中,在所述步骤S20中,依据查询请求查询缓存ID表,选出符合查询条件的缓存ID集合的步骤为:
S201、依据所述查询请求的查询条件构造SQL语句, 对内存数据库中的用户权限表、过滤条件表以及缓存ID表进行关联查询;
S202、利用内存数据访问接口执行SQL语句,返回满足查询条件的缓存ID集合。
优选地,在执行所述步骤S10之后,还包括:
S11、周期地调用磁盘数据库的存储进程获取磁盘数据库的更新数据,并将这些更新数据更新至分布式缓存以及内存数据库中。
具体地,在所述步骤S11中,所述更新包括数据的新增、修改以及删除,将这些更新数据更新至分布式缓存以及内存数据库中的方法为:
1)对于新增数据,将新增数据以缓存ID-实体数据的键值对形式存入分布式缓存中,同时将所述缓存ID以及实体数据的关键信息插入缓存ID表;
2)对于修改数据,调用分布式缓存客户端接口函数,将所述修改数据替换分布式缓存中的原有缓存数据,同时更新缓存ID表;
3)对于删除数据,调用分布式缓存客户端接口函数删除分布式缓存中的原有缓存数据,同时删除缓存ID表中的记录。
例如,与本发明实施例提出的提高大数据量查询性能的方法相对应的系统,其在实施过程中包括如下步骤:
步骤一,应用服务器启动加载。
应用服务器将磁盘数据库中的数据以键值对的形式加载到分布式缓存中,其中,键是唯一的缓存标识(缓存ID),值是对应的详细的实体数据, 同时将缓存ID和实体数据中的关键信息数据存入内存数据库的缓存ID表中。实体数据中的关键信息数据是指与查询请求中查询条件相关的字段信息。
在该步骤中,应用服务器在启动加载时,还将磁盘数据库中的用户权限和过滤条件也分别加载到内存数据库的用户权限表和过滤条件表中。
步骤二,应用服务器执行与磁盘数据库的数据同步。
应用服务器启动线程定时将磁盘数据库中的数据同步到分布式缓存中,同时更新缓存ID表,保证分布式缓存数据与磁盘数据库数据的一致性。
其中数据同步包括新增数据加载、修改数据更新和删除数据清除操作。
步骤三,利用内存数据库过滤缓存ID。
应用服务器在收到查询请求时,首先构造SQL语句,对用户权限表、过滤条件表和缓存ID表进行关联查询,选出符合查询条件的缓存ID集合。
步骤四,从分布式缓存中获取详细数据返回。
应用服务器根据第三步获取的缓存ID集合,从分布式缓存中取出对应的结果详细数据,并返回客户端。
如2所示,本发明实施例提供的一种提高大数据量查询性能的系统,包括:
数据库服务器200,用于维护磁盘数据库;
应用服务器100,用于将磁盘数据库中的数据以缓存ID-实体数据的键值对形式加载到分布式缓存服务器300中,同时将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中;以及进一步用于在获取客户端400发送查询请求时,依据该查询请求查询缓存ID表,选出符合查询条件的缓存ID集合,并依据所述缓存ID集合从相应的分布式缓存服务器300中获取实体数据并返回客户端400;其中,所述关键信息是指客户端400发送的查询请求中与查询条件相关的字段信息,例如,所述查询条件包括过滤条件、排序条件、分页条件;
至少一个分布式缓存服务器300,用于缓存应用服务器100加载的实体数据;以及进一步用于当应用服务器100依据缓存ID集合从分布式缓存服务器300取数据时,发送相应的实体数据至应用服务器100;
客户端400,用于根据获取的数据查询指令向应用服务器100发送查询请求,以及进一步用于从应用服务器100获取其查询到的实体数据。
具体地,本实施例中,在应用服务器100执行将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中时,还执行:将磁盘数据库中的用户权限与过滤条件也分别加载到内存数据库中的用户权限表与过滤条件表中。
本实施例中,应用服务器100依据查询请求查询缓存ID表,选出符合查询条件的缓存ID集合的方法为:
依据所述查询请求的查询条件构造SQL语句, 对内存数据库中的用户权限表、过滤条件表以及缓存ID表进行关联查询;
3)利用内存数据库访问接口执行SQL语句,返回满足查询条件的缓存ID集合。
本实施例中,所述应用服务器100还用于周期地调用磁盘数据库的存储进程获取磁盘数据库的更新数据,并将这些更新数据更新至分布式缓存以及内存数据库中,以保证分布式缓存服务器中的数据与磁盘数据库中的数据的一致性。
优选地,所述更新包括数据的新增、修改以及删除,所述应用服务器将这些更新数据更新至分布式缓存以及内存数据库中的方法为:
对于新增数据,将新增数据以缓存ID-实体数据的键值对形式存入分布式缓存中,同时将所述缓存ID以及实体数据的关键信息插入缓存ID表;
对于修改数据,调用分布式缓存客户端接口函数,将所述修改数据替换分布式缓存中的原有缓存数据,同时更新缓存ID表;
对于删除数据,调用分布式缓存客户端接口函数删除分布式缓存中的原有缓存数据,同时删除缓存ID表中的记录。
例如,参考图3,本发明实施例提供的提高大数据量查询性能的系统,其在具体实施时,包括如下具体实施步骤:
1)应用服务器启动时,首先执行分布式缓存服务器的初始化,建立与分布式缓存服务器的连接。
再通过调用磁盘数据库存储进程将磁盘数据库所有数据(可以分批或增量加载)以对象的形式加载到应用服务器的内存中,其中,每个对象对应一个唯一的缓存标识(即缓存ID)。
然后调用分布式缓存客户端接口函数,将数据以<缓存ID,数据对象>键值对的形式存入分布式缓存服务器中,此时数据对象需要实现序列化接口。
以及,初始化内存数据库,构造SQL语句,在内存中创建一个缓存ID表,其字段包括缓存ID(主关键字)以及用于过滤和排序的信息,如类型、级别或时间等,并调用内存数据库访问接口执行。
之后,构造SQL语句,将缓存ID和从磁盘数据库中获取的数据中对应的信息批量存入缓存ID表。为了提高查询效率,应用服务器启动加载时,将磁盘数据库中的用户权限和过滤条件信息也分别加载到内存数据库的相应表中,这些表为用户权限表和过滤条件表。
2)完成应用服务器的启动加载后,应用服务器开启数据同步线程,定时同步磁盘数据库与内存及缓存(其包括内存数据库和分布式缓存服务器)中的数据。
例如,具体实施时,可以每隔一段时间(如3秒)调用磁盘数据库的存储进程获取全部(或增量)改变的数据(包括新增、修改和删除)。
对于新增数据,新增数据以<键,值>对的形式存入分布式缓存中,同时将对应信息插入缓存ID表;
对于修改数据,调用分布式缓存客户端接口函数,替换原有缓存数据,同时更新缓存ID表;
对于删除数据,调用分布式缓存客户端接口函数,删除缓存,同时删除缓存ID表中的记录。
当磁盘数据库中的数据不会发生变化时,不需要进行数据同步,则可以省略该步骤。
经过以上两步,我们可以认为内存缓存中的数据与磁盘数据库中的数据是一致的。
3)当应用服务器收到查询请求时,首先根据查询条件构造SQL语句,对用户权限表、过滤条件表和缓存ID表进行关联查询,再利用内存数据库访问接口执行SQL语句,返回满足查询条件的缓存ID集合。
4)最后,应用服务器根据获得的缓存ID集合,调用分布式缓存客户端接口函数,从分布式缓存中批量获取对应缓存ID集合的结果详细数据集合,返回客户端,一次查询结束。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种提高大数据量查询性能的方法,其特征在于,包括:
A、将磁盘数据库中的数据以缓存ID-实体数据的键值对形式加载到分布式缓存中,同时将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中;
B、获取客户端发送的查询请求时,依据该查询请求查询缓存ID表,选出符合查询条件的缓存ID集合;
C、依据所述缓存ID集合从相应的分布式缓存中获取实体数据并返回客户端。
2.如权利要求1所述的提高大数据量查询性能的方法,其特征在于,在所述步骤A中,所述关键信息是指客户端发送的查询请求中与查询条件相关的字段信息,其中,所述查询条件包括过滤条件、排序条件、分页条件。
3.如权利要求1或2所述的提高大数据量查询性能的方法,其特征在于,在所述步骤A中,在执行将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中时,还执行:
将磁盘数据库中的用户权限与过滤条件也分别加载到内存数据库中的用户权限表与过滤条件表中。
4.如权利要求3所述的提高大数据量查询性能的方法,其特征在于,在所述步骤B中,依据查询请求查询缓存ID表,选出符合查询条件的缓存ID集合的步骤为:
依据所述查询请求的查询条件构造SQL语句,对内存数据库中的用户权限表、过滤条件表以及缓存ID表进行关联查询;
利用内存数据库访问接口执行SQL语句,返回满足查询条件的缓存ID集合。
5.如权利要求1所述的提高大数据量查询性能的方法,其特征在于,在执行所述步骤A之后,还包括:
A1、周期地调用磁盘数据库的存储进程获取磁盘数据库的更新数据,并将这些更新数据更新至分布式缓存以及内存数据库中。
6.如权利要求5所述的提高大数据量查询性能的方法,其特征在于,更新包括数据的新增、修改以及删除,将这些更新数据更新至分布式缓存以及内存数据库中的方法为:
对于新增数据,将新增数据以缓存ID-实体数据的键值对形式存入分布式缓存中,同时将所述缓存ID以及实体数据的关键信息插入缓存ID表;
对于修改数据,调用分布式缓存客户端接口函数,将所述修改数据替换分布式缓存中的原有缓存数据,同时更新缓存ID表;
对于删除数据,调用分布式缓存客户端接口函数删除分布式缓存中的原有缓存数据,同时删除缓存ID表中的记录。
7.一种提高大数据量查询性能的系统,其特征在于,包括:
数据库服务器,用于维护磁盘数据库;
应用服务器,用于将磁盘数据库中的数据以缓存ID-实体数据的键值对形式加载到分布式缓存服务器中,同时将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中;以及进一步用于在获取客户端发送查询请求时,依据该查询请求查询缓存ID表,选出符合查询条件的缓存ID集合,并依据所述缓存ID集合从相应的分布式缓存服务器中获取实体数据并返回客户端;
至少一个分布式缓存服务器,用于缓存应用服务器加载的实体数据;以及进一步用于当应用服务器依据缓存ID集合从分布式缓存服务器取数据时,发送相应的实体数据至应用服务器;
客户端,用于根据获取的数据查询指令向应用服务器发送查询请求,以及进一步用于从应用服务器获取其查询到的实体数据。
8.如权利要求7所述的提高大数据量查询性能的系统,其特征在于,所述关键信息是指客户端发送的查询请求中与查询条件相关的字段信息,其中,所述查询条件包括过滤条件、排序条件、分页条件。
9.如权利要求7或8所述的提高大数据量查询性能的系统,其特征在于,在应用服务器执行将所述缓存ID以及实体数据中的关键信息存入内存数据库中的缓存ID表中时,还执行:将磁盘数据库中的用户权限与过滤条件也分别加载到内存数据库中的用户权限表与过滤条件表中。
10.如权利要求9所述的提高大数据量查询性能的系统,其特征在于,应用服务器依据查询请求查询缓存ID表,选出符合查询条件的缓存ID集合的方法为:
依据所述查询请求的查询条件构造SQL语句,对内存数据库中的用户权限表、过滤条件表以及缓存ID表进行关联查询;
利用内存数据库访问接口执行SQL语句,返回满足查询条件的缓存ID集合。
11.如权利要求7所述的提高大数据量查询性能的系统,其特征在于,所述应用服务器还用于周期地调用磁盘数据库的存储进程获取磁盘数据库的更新数据,并将这些更新数据更新至分布式缓存以及内存数据库中。
12.如权利要求11所述的提高大数据量查询性能的系统,其特征在于,更新包括数据的新增、修改以及删除,所述应用服务器将这些更新数据更新至分布式缓存以及内存数据库中的方法为:
对于新增数据,将新增数据以缓存ID-实体数据的键值对形式存入分布式缓存中,同时将所述缓存ID以及实体数据的关键信息插入缓存ID表;
对于修改数据,调用分布式缓存客户端接口函数,将所述修改数据替换分布式缓存中的原有缓存数据,同时更新缓存ID表;
对于删除数据,调用分布式缓存客户端接口函数删除分布式缓存中的原有缓存数据,同时删除缓存ID表中的记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210499321.1A CN103853727B (zh) | 2012-11-29 | 2012-11-29 | 提高大数据量查询性能的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210499321.1A CN103853727B (zh) | 2012-11-29 | 2012-11-29 | 提高大数据量查询性能的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103853727A CN103853727A (zh) | 2014-06-11 |
CN103853727B true CN103853727B (zh) | 2018-07-31 |
Family
ID=50861394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210499321.1A Active CN103853727B (zh) | 2012-11-29 | 2012-11-29 | 提高大数据量查询性能的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103853727B (zh) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021192A (zh) * | 2014-06-13 | 2014-09-03 | 北京联时空网络通信设备有限公司 | 一种数据库更新方法及装置 |
CN105224560B (zh) * | 2014-06-20 | 2019-12-06 | 腾讯科技(北京)有限公司 | 缓存数据的查找方法和装置 |
CN104216957A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种视频元数据的查询系统及查询方法 |
CN105512129B (zh) * | 2014-09-24 | 2018-12-04 | 中国移动通信集团江苏有限公司 | 一种海量数据检索方法及装置、海量数据存储方法及系统 |
CN105530536B (zh) | 2014-09-28 | 2020-03-31 | 阿里巴巴集团控股有限公司 | 提供媒体关联信息的方法及装置 |
CN105574054B (zh) * | 2014-11-06 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
TWI526857B (zh) * | 2014-11-06 | 2016-03-21 | The database acceleration method is used to calculate the index value and the hybrid layer cache | |
CN105791906A (zh) * | 2014-12-15 | 2016-07-20 | 深圳Tcl数字技术有限公司 | 信息推送的方法和系统 |
CN105786938A (zh) | 2014-12-26 | 2016-07-20 | 华为技术有限公司 | 一种对大数据进行处理的方法和装置 |
CN106326235A (zh) * | 2015-06-18 | 2017-01-11 | 天脉聚源(北京)科技有限公司 | 一种微信公众帐号信息记录的排序分页的方法和系统 |
CN106339253B (zh) * | 2015-07-06 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 一种系统间进行数据调用的方法及其装置 |
CN105357293B (zh) * | 2015-10-29 | 2019-02-15 | 努比亚技术有限公司 | 一种数据缓存的更新方法及服务器 |
CN105426467B (zh) * | 2015-11-16 | 2018-11-20 | 北京京东尚科信息技术有限公司 | 一种用于Presto的SQL查询方法及系统 |
CN107045499A (zh) * | 2016-02-05 | 2017-08-15 | 中兴通讯股份有限公司 | 一种实现数据查询的方法和服务器 |
CN107180043B (zh) * | 2016-03-09 | 2019-08-30 | 北京京东尚科信息技术有限公司 | 分页实现方法和分页系统 |
CN105843951B (zh) * | 2016-04-12 | 2019-12-13 | 北京小米移动软件有限公司 | 数据查询方法和装置 |
CN105930492A (zh) * | 2016-05-05 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种将关系表数据载入缓存的系统和方法 |
CN107657458A (zh) * | 2016-08-23 | 2018-02-02 | 平安科技(深圳)有限公司 | 名单获取方法及装置 |
CN107844488B (zh) * | 2016-09-18 | 2022-02-01 | 北京京东尚科信息技术有限公司 | 数据查询方法和装置 |
CN107870908B (zh) * | 2016-09-22 | 2021-10-19 | 阿里巴巴集团控股有限公司 | 一种信息获取方法及装置 |
WO2018081925A1 (zh) * | 2016-11-01 | 2018-05-11 | 深圳中兴力维技术有限公司 | 内存数据库查询方法及装置 |
CN106557562A (zh) * | 2016-11-14 | 2017-04-05 | 天津南大通用数据技术股份有限公司 | 一种单机数据库数据的查询方法及装置 |
CN106776706A (zh) * | 2016-11-16 | 2017-05-31 | 航天恒星科技有限公司 | 基于缓存的用户权限管理方法及装置 |
CN106776795B (zh) * | 2016-11-23 | 2020-05-12 | 黄健文 | 基于Hbase数据库的数据写入方法及装置 |
CN108228663A (zh) * | 2016-12-21 | 2018-06-29 | 杭州海康威视数字技术股份有限公司 | 一种分页检索方法及装置 |
CN108460041B (zh) * | 2017-02-20 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 数据的处理方法和装置 |
CN107092530B (zh) * | 2017-03-01 | 2021-01-05 | 广州银禾网络通信有限公司 | 一种基于分布式内存的信令数据处理方法及系统 |
CN107423999B (zh) * | 2017-03-31 | 2021-03-30 | 优品财富管理股份有限公司 | 一种基于用户分组的定向下发广告方法及系统 |
CN106991174A (zh) * | 2017-04-05 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种Smart Rack系统数据库的优化方法 |
CN107102905B (zh) * | 2017-04-13 | 2020-08-11 | 华南理工大学 | 基于Artifact的大数据服务的平台及平台处理方法 |
CN107153683B (zh) * | 2017-04-24 | 2020-04-07 | 泰康保险集团股份有限公司 | 实现数据查询的方法和装置 |
CN108932248B (zh) * | 2017-05-24 | 2022-01-28 | 苏宁易购集团股份有限公司 | 一种搜索实现方法及系统 |
CN107330119B (zh) * | 2017-07-14 | 2018-08-03 | 掌阅科技股份有限公司 | 缓存数据处理方法、电子设备、计算机存储介质 |
CN107506445A (zh) * | 2017-08-25 | 2017-12-22 | 郑州云海信息技术有限公司 | 云数据系统中数据查询的响应方法和装置 |
CN107943846B (zh) * | 2017-11-01 | 2021-05-11 | 内蒙古科电数据服务有限公司 | 数据处理方法、装置及电子设备 |
CN108052656A (zh) * | 2017-12-28 | 2018-05-18 | 迈普通信技术股份有限公司 | 一种数据缓存控制方法及设备 |
CN108228817B (zh) * | 2017-12-29 | 2021-12-03 | 华为技术有限公司 | 数据处理方法、装置和系统 |
CN110109953B (zh) | 2018-01-19 | 2023-12-19 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
CN110134705A (zh) * | 2018-02-09 | 2019-08-16 | 中国移动通信集团有限公司 | 一种数据查询方法、缓存服务器及终端 |
CN108595487B (zh) * | 2018-03-14 | 2022-04-29 | 武汉村助手科技有限公司 | 一种大数据高并发下访问数据的方法及系统 |
CN108509586A (zh) * | 2018-03-29 | 2018-09-07 | 努比亚技术有限公司 | 缓存管理的方法、装置及计算机可读存储介质 |
CN110633296A (zh) * | 2018-05-31 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 数据查询方法、装置、介质及电子设备 |
CN108932298A (zh) * | 2018-06-05 | 2018-12-04 | 中国电力科学研究院有限公司 | 一种优化数据查询性能的方法及系统 |
CN110647542B (zh) * | 2018-06-11 | 2022-07-19 | 北京神州泰岳软件股份有限公司 | 一种数据获取方法和装置 |
CN109271394B (zh) * | 2018-08-27 | 2021-05-07 | 武汉达梦数据库有限公司 | 一种基于id缓存的数据批量插入更新实现方法 |
CN111159142B (zh) * | 2018-11-07 | 2023-07-14 | 马上消费金融股份有限公司 | 一种数据处理方法及装置 |
CN111400266B (zh) * | 2019-01-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据处理方法和系统、操作事件的诊断处理方法和装置 |
CN110019277A (zh) * | 2019-01-17 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据累积的方法、数据查询的方法、装置及设备 |
CN109981774B (zh) * | 2019-03-22 | 2021-02-19 | 联想(北京)有限公司 | 数据缓存方法和数据缓存装置 |
CN110109958A (zh) * | 2019-04-19 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 缓存处理方法、装置、设备及计算机可读存储介质 |
CN110032578B (zh) * | 2019-04-22 | 2023-04-11 | 浪潮通用软件有限公司 | 一种海量数据查询缓存的方法及装置 |
CN110597859B (zh) * | 2019-09-06 | 2022-03-29 | 天津车之家数据信息技术有限公司 | 一种分页查询数据的方法和装置 |
CN110866045A (zh) * | 2019-10-25 | 2020-03-06 | 广西英腾教育科技股份有限公司 | 一种数据并发统计方法、系统、介质及设备 |
CN110807040B (zh) * | 2019-10-30 | 2023-03-24 | 北京达佳互联信息技术有限公司 | 管理数据的方法、装置、设备及存储介质 |
CN113076329A (zh) * | 2020-01-03 | 2021-07-06 | 上海亲平信息科技股份有限公司 | 一种内存数据库 |
CN113076311B (zh) * | 2020-01-03 | 2023-04-11 | 上海亲平信息科技股份有限公司 | 一种分布式数据库 |
CN113158097A (zh) * | 2020-01-07 | 2021-07-23 | 广州探途天下科技有限公司 | 一种网络访问处理方法、装置、设备及系统 |
CN112115150B (zh) * | 2020-08-03 | 2024-03-19 | 上海金仕达软件科技股份有限公司 | 嵌入式内存数据库的数据管理方法、终端设备及介质 |
CN111913988A (zh) * | 2020-08-17 | 2020-11-10 | 中消云(北京)物联网科技研究院有限公司 | 数据查询处理方法及装置 |
CN112000645A (zh) * | 2020-08-24 | 2020-11-27 | 浪潮云信息技术股份公司 | 一种基于分布式数据库的数据库模式构建方法 |
CN112434068A (zh) * | 2020-11-30 | 2021-03-02 | 北京思特奇信息技术股份有限公司 | 基于移动通信产品关系表数据的缓存方法、装置、计算机设备 |
CN112597198A (zh) * | 2020-12-18 | 2021-04-02 | 北京达佳互联信息技术有限公司 | 一种用户数据查询方法和装置、服务器和存储介质 |
CN112597163B (zh) * | 2020-12-25 | 2024-05-28 | 珠海金山数字网络科技有限公司 | 数据处理系统、方法及装置 |
CN112835870B (zh) * | 2021-01-28 | 2023-01-24 | 浪潮通用软件有限公司 | 一种基于用户权限的内容缓存方法及系统 |
CN112818019B (zh) * | 2021-01-29 | 2024-02-02 | 北京思特奇信息技术股份有限公司 | 一种应用于Redis客户端的查询请求过滤方法及Redis客户端 |
CN112966008B (zh) * | 2021-04-12 | 2023-12-05 | 中国人民银行数字货币研究所 | 一种数据缓存方法、加载方法、更新方法和相关装置 |
CN113420052B (zh) * | 2021-07-08 | 2023-02-17 | 上海浦东发展银行股份有限公司 | 一种多级分布式缓存系统及方法 |
CN113392126B (zh) * | 2021-08-17 | 2021-11-02 | 北京易鲸捷信息技术有限公司 | 基于分布式数据库的执行计划缓存及读取方法 |
CN113641711B (zh) * | 2021-08-17 | 2024-05-31 | 天津卓盛云科技有限公司 | 一种针对saas租户的数据缓存处理方法、装置及介质 |
CN115481158B (zh) * | 2022-09-22 | 2023-05-30 | 北京泰策科技有限公司 | 一种数据分布式缓存自动加载与转换方法 |
CN116028525A (zh) * | 2023-03-31 | 2023-04-28 | 成都四方伟业软件股份有限公司 | 一种数据分片智能化管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320392A (zh) * | 2008-07-17 | 2008-12-10 | 中兴通讯股份有限公司 | 内存数据库的大容量数据存取方法及装置 |
CN102739720A (zh) * | 2011-04-14 | 2012-10-17 | 中兴通讯股份有限公司 | 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7293028B2 (en) * | 2001-06-08 | 2007-11-06 | Sap Ag | Cache-conscious concurrency control scheme for database systems |
-
2012
- 2012-11-29 CN CN201210499321.1A patent/CN103853727B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320392A (zh) * | 2008-07-17 | 2008-12-10 | 中兴通讯股份有限公司 | 内存数据库的大容量数据存取方法及装置 |
CN102739720A (zh) * | 2011-04-14 | 2012-10-17 | 中兴通讯股份有限公司 | 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
Non-Patent Citations (1)
Title |
---|
分级的行列级权限系统的设计和实现;冯志亮 等;《计算机工程与设计》;20110630;第32卷(第10期);第3274-3277页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103853727A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853727B (zh) | 提高大数据量查询性能的方法及系统 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN109299102A (zh) | 一种基于Elastcisearch的HBase二级索引系统及方法 | |
CN104679898A (zh) | 一种大数据访问方法 | |
US11275759B2 (en) | Data storage method and apparatus, server, and storage medium | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其系统 | |
CN105338113B (zh) | 一种针对城市数据资源共享的多平台数据互联系统 | |
CN104778270A (zh) | 一种用于多文件的存储方法 | |
US9183267B2 (en) | Linked databases | |
CN106776783B (zh) | 非结构化数据存储管理方法和系统 | |
US7672935B2 (en) | Automatic index creation based on unindexed search evaluation | |
CN110188080A (zh) | 基于客户端高效缓存的远程文件数据访问性能优化方法 | |
Pirzadeh et al. | Performance evaluation of range queries in key value stores | |
CN105159845A (zh) | 存储器读取方法 | |
CN106599152A (zh) | 一种数据缓存方法及系统 | |
CN106020847A (zh) | 一种持久层开发框架配置sql的方法和装置 | |
CN102546674A (zh) | 一种基于网络存储装置的目录树缓存系统及方法 | |
CN116541427B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN106484694B (zh) | 基于分布式数据库的全文搜索方法及系统 | |
CN108319634A (zh) | 分布式文件系统的目录访问方法和装置 | |
CN110471925A (zh) | 实现搜索系统中索引数据同步的方法及系统 | |
US11210212B2 (en) | Conflict resolution and garbage collection in distributed databases | |
D’silva et al. | Secondary indexing techniques for key-value stores: Two rings to rule them all | |
CN108769166A (zh) | 一种基于元数据的cdn缓存内容管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |