CN103336849A - 一种数据库检索系统中提高检索速度的方法及装置 - Google Patents
一种数据库检索系统中提高检索速度的方法及装置 Download PDFInfo
- Publication number
- CN103336849A CN103336849A CN2013103118142A CN201310311814A CN103336849A CN 103336849 A CN103336849 A CN 103336849A CN 2013103118142 A CN2013103118142 A CN 2013103118142A CN 201310311814 A CN201310311814 A CN 201310311814A CN 103336849 A CN103336849 A CN 103336849A
- Authority
- CN
- China
- Prior art keywords
- record
- buffer memory
- data buffer
- term
- retrieval
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000015654 memory Effects 0.000 claims description 293
- 230000008859 change Effects 0.000 claims description 19
- 238000010276 construction Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 16
- 238000007726 management method Methods 0.000 description 13
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 11
- 239000010936 titanium Substances 0.000 description 11
- 229910052719 titanium Inorganic materials 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 239000002893 slag Substances 0.000 description 9
- 230000001939 inductive effect Effects 0.000 description 8
- 229910052500 inorganic mineral Inorganic materials 0.000 description 7
- 239000011707 mineral Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- YDZQQRWRVYGNER-UHFFFAOYSA-N iron;titanium;trihydrate Chemical compound O.O.O.[Ti].[Fe] YDZQQRWRVYGNER-UHFFFAOYSA-N 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据库检索系统中提高检索速度的方法及装置,属于数据库检索技术领域。本发明包括:在内存中建立数据缓存;当获得检索词后,在所述数据缓存中查找;如果在数据缓存中查找到相应检索词的缓存记录,根据所述缓存记录生成检索结果集并返回,结束本次检索;如果在数据缓存中没有查找到,则检索数据库,返回检索结果集;如果检索结果集不为空,则将检索词及检索结果集写入所述数据缓存。本发明还公开了一种数据库检索系统中提高检索速度的装置。本发明通过使用后再缓存的方式,减少了构建缓存所消耗的系统资源,同时提高了缓存的利用率;采用缓存结果集的方式,使得缓存机制更加快捷。
Description
技术领域
本发明涉及一种数据库检索系统中提高检索速度的方法及装置,属于数据库检索技术领域。
背景技术
在一些专业领域的数据库应用系统中,如介电常数数据库,记录的是经过实验后得到矿物的介电常数及其相关信息,这些信息都是相对稳定的,矿物的种类、数量也是相对固定的。很多类似的专业领域数据库应用系统往往像一个备查的词典,而不同于日常事务管理的数据库系统信息频繁变更和记录不断增长,对这类数据库应用系统往往也需要根据其特点来建立优化方案,提高检索速度。
在计算机科学中缓存(Cache)机制是提高数据访问速度的一个基本方法,不论是在CPU等硬件技术领域还是在数据库等软件技术领域都大量采用缓存技术来提高数据访问的速度。现有的数据库管理系统的产品,如Oracle、SQL Server、MySQL也通过缓存技术以减少对磁盘的I/O操作来提高其数据访问的速度,然而在这些数据库管理系统中采用的缓存技术往往是一种通用的缓存技术,其基本策略就是采用页缓存技术将数据在内存里缓存一段时间,用以提高数据访问速度。这种缓存技术是由于底层的数据库管理系统必须基于一种通用性的策略来设计,因而缺乏,也不可能提供面向应用的访问热点的管理机制。
评价一个缓存对提高访问速度的实际效果首先要看这个缓存的利用率(往往也称为命中率)。其次,还要看建立缓存所消耗的资源,因为某一方面虽然提高了速度,而另一方面却消耗系统资源过多而降低了整个系统的性能和速度,这样将会是得不偿失的。另外,还需要看缓存的组织结构,是否更加的快捷。现有的一些数据库应用系统中,在提高数据库查询速度方面,在数据库系统的服务器端也采用类似于数据库管理系统自身的方案(如中国专利ZL200610041548.6 “一种加速数据库查询速度的方法”),“根据业务实际数量建立对应大小的共享内存”,也就是将所有的业务表都缓存在内存中,并且建立一个守护进程来不断的更新缓存,由于缓存规模大,其资源消耗是比较大的,同时数据库管理系统本身已经有类似的缓存机制,因此,这种相互独立的“双缓存”机制,其缓存的利用率不高而消耗的资源却很大。也有采用记录级缓存和页缓存相结合的双缓存机制(如中国专利ZL201010225187.7“一种数据库缓存管理方法及一种数据库服务”),但这种机制也无法提供面向应用的热点管理,而且对这种记录级缓存机制,如果要从缓存中直接得到结果集,就需要缓存更多的数据库表记录并通过比对、判断后筛选出结果集,这种缓存机制不够快捷。为提高缓存的利用率也有采用访问热度来构建缓存(如中国专利ZL200910207231.9“资源缓存方法、资源获取方法及其装置、系统”),通过每隔一段时间根据访问热度来建立缓存的方法,以提高缓存的利用率。这种方式就导致需要对数据库的资源进行专门的访问热度的计算和管理,对资源访问热度的管理本身也是一个复杂的过程,同时,定期动态构建缓存也必然增加数据库的I/O操作和消耗较多的系统资源,这种方式不适合应用专业领域数据库,这类数据库往往针对科研人员,规模小而硬件投入也比较少、服务器资源单一,这类系统上需要一种高效、快捷而易于实现的技术方案。
发明内容
本发明要解决的技术问题是针对上述问题,提供了一种数据库检索系统中提高检索速度的方法,另一方面提供了一种数据库检索系统中提高检索速度的装置,通过提高数据缓存利用率、减少构建数据缓存所消耗的资源和优化数据缓存的组织结构,以提高数据库检索系统的检索速度。
本发明的技术方案是:一种数据库检索系统中提高检索速度的方法,包括:
在内存中建立数据缓存;
当获得检索词后,在所述数据缓存中查找;如果在数据缓存中查找到相应检索词的缓存记录,根据所述缓存记录生成检索结果集并返回,结束本次检索;如果在数据缓存中没有查找到,则检索数据库,返回检索结果集;
如果检索结果集不为空,则将检索词及检索结果集写入所述数据缓存。
优选的,所述将检索词及检索结果集写入所述数据缓存包括:
在每次检索完数据库后,如果所述数据缓存未满,则将检索词及检索结果集写入所述数据缓存中;如果所述数据缓存已满,则计算访问频次,找出访问频次最低的数据缓存记录,将所述数据缓存中访问频次最低的n条缓存记录移除,再将检索词及检索结果集写入所述数据缓存中;如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,再将检索词及检索结果集写入所述数据缓存中;其中,所述数据缓存的大小由预定的最大缓存记录数决定,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1。
优选的,所述缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集。
优选的,所述数据缓存进一步分为两个区域,其中,第一缓存区域中的记录包括代表缓存记录的检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;所述记录ID为数据库表记录的全局唯一标识;第二缓存区域的记录为数据库表的记录,包括:记录ID和记录信息;第一缓存区域的记录与第二缓存区域的记录为一对多的关系。
优选的,所述结果集新写入所述数据缓存时,默认访问次数为1;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1。
优选的,所述第一缓存区域、第二缓存区域均采用哈希表来组织;第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息。
优选的,所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除。
优选的,所述访问频次f定义为:
其中,N为访问次数,Tnow为当前时间,Tcached为写入缓存时间。
优选的,当接收到数据变更消息,根据所述数据变更消息更新所述数据缓存。
优选的,每隔一预定时间将所述数据缓存以备份文件的形式保存到磁盘中,在断电、异常或重启后从磁盘中读取备份文件以恢复所述数据缓存。
一种数据库检索系统中提高检索速度的装置,包括:
缓存构建单元,用于在内存中建立数据缓存;缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集;所述数据缓存的大小由预定的最大缓存记录数决定;所述数据缓存进一步分为两个区域:第一缓存区域和第二缓存区域;第一缓存区域的记录与第二缓存区域的记录为一对多的关系;第一缓存区域、第二缓存区由两个哈希表构成,第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息。
数据查找单元,用于在数据缓存中查找检索词,具体包括:获得的有效检索词后,在数据缓存中查找检索词,将查找到的数据缓存记录封装并返回结果集;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1;如果在数据缓存中没有查找到,则检索数据库。
缓存写入单元,用于接收数据查找单元提供的检索词及检索结果集并将检索词及检索结果集写入所述数据缓存,具体包括:在获得检索结果集后,如果所述数据缓存未满,则将检索词及检索结果集写入所述数据缓存中;如果所述数据缓存已满,则计算访问频次,找出访问频次最低的数据缓存记录,将所述数据缓存中访问频次最低的n条缓存记录移除,再将检索词及检索结果集写入所述数据缓存中;如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,再将检索词及检索结果集写入所述数据缓存中;其中,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1;所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除;所述结果集新写入所述数据缓存时,默认访问次数为1;所述访问频次f定义为:
其中,N为访问次数,Tnow为当前时间,Tcached为写入缓存时间。
缓存更新单元,用于更新数据缓存,具体包括:当接收到数据变更消息,根据数据变更消息更新所述数据缓存。
缓存备份与恢复单元,用于备份和恢复所述数据缓存,具体包括:每隔一预定时间将所述数据缓存以备份文件的形式保存到磁盘中,在断电、异常或重启后从磁盘中读取备份文件以恢复所述数据缓存。
本发明的有益效果是:本发明的基本思路是结合数据库应用系统的业务特点,从提高缓存利用率、减少构建缓存所消耗的系统资源和优化缓存的组织结构三个方面入手来架构数据缓存,以提高数据库检索系统的检索速度。其有益效果主要体现在:
(1)通过使用后再缓存的方式,减少了构建缓存所消耗的系统资源;
(2)采用缓存结果集的方式,使得缓存机制更加快捷,同时采用双缓存区域的结构,有效避免了这种缓存结果集的方式可能带来的数据冗余,提高了缓存的空间利用率和可维护性;
(3)根据访问频次动态更新缓存数据,将访问频次较高的数据保留在缓存中,提高了缓存的利用率;
(4)在逐步的使用过程中,缓存中将渐次形成一个高热度的缓存,这种机制使得数据库检索系统具有越用越快的特性,提升了用户体验;
(5)将访问热度的管理缩小到仅仅是缓存的数据,有效减少了访问热度管理所消耗的系统资源;
(6)采用计数方式来优化双缓存区域结构的记录移除操作,使得双缓存区域机制的记录移除操作简便而快捷。
附图说明
图1是本发明实施例的数据库检索系统中提高检索速度的方法的主要流程图;
图2是本发明实施例的检索词及检索结果集写入数据缓存的流程图;
图3是本发明实施例的数据库检索系统中提高检索速度的装置的结构框图。
具体实施方式
下面结合附图和具体实施方式,对本发明作进一步说明。
一种数据库检索系统中提高检索速度的方法,包括:
在内存中建立数据缓存;
当获得检索词后,在所述数据缓存中查找;如果在数据缓存中查找到相应检索词的缓存记录,根据所述缓存记录生成检索结果集并返回,结束本次检索;如果在数据缓存中没有查找到,则检索数据库,返回检索结果集;
如果检索结果集不为空,则将检索词及检索结果集写入所述数据缓存。
优选的,所述将检索词及检索结果集写入所述数据缓存包括:
在每次检索完数据库后,如果所述数据缓存未满,则将检索词及检索结果集写入所述数据缓存中;如果所述数据缓存已满,则计算访问频次,找出访问频次最低的数据缓存记录,将所述数据缓存中访问频次最低的n条缓存记录移除,再将检索词及检索结果集写入所述数据缓存中;如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,再将检索词及检索结果集写入所述数据缓存中;其中,所述数据缓存的大小由预定的最大缓存记录数决定,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1。
优选的,所述缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集。
优选的,所述数据缓存进一步分为两个区域,其中,第一缓存区域中的记录包括代表缓存记录的检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;所述记录ID为数据库表记录的全局唯一标识;第二缓存区域的记录为数据库表的记录,包括:记录ID和记录信息;第一缓存区域的记录与第二缓存区域的记录为一对多的关系。
优选的,所述结果集新写入所述数据缓存时,默认访问次数为1;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1。
优选的,所述第一缓存区域、第二缓存区域均采用哈希表来组织;第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息。
优选的,所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除。
优选的,所述访问频次f定义为:
其中,N为访问次数,Tnow为当前时间,Tcached为写入缓存时间。
优选的,当接收到数据变更消息,根据所述数据变更消息更新所述数据缓存。
优选的,每隔一预定时间将所述数据缓存以备份文件的形式保存到磁盘中,在断电、异常或重启后从磁盘中读取备份文件以恢复所述数据缓存。
一种数据库检索系统中提高检索速度的装置,包括:
缓存构建单元,用于在内存中建立数据缓存;缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集;所述数据缓存的大小由预定的最大缓存记录数决定;所述数据缓存进一步分为两个区域:第一缓存区域和第二缓存区域;第一缓存区域的记录与第二缓存区域的记录为一对多的关系;第一缓存区域、第二缓存区由两个哈希表构成,第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息。
数据查找单元,用于在数据缓存中查找检索词,具体包括:获得的有效检索词后,在数据缓存中查找检索词,将查找到的数据缓存记录封装并返回结果集;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1;如果在数据缓存中没有查找到,则检索数据库。
缓存写入单元,用于接收数据查找单元提供的检索词及检索结果集并将检索词及检索结果集写入所述数据缓存,具体包括:在获得检索结果集后,如果所述数据缓存未满,则将检索词及检索结果集写入所述数据缓存中;如果所述数据缓存已满,则计算访问频次,找出访问频次最低的数据缓存记录,将所述数据缓存中访问频次最低的n条缓存记录移除,再将检索词及检索结果集写入所述数据缓存中;如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,再将检索词及检索结果集写入所述数据缓存中;其中,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1;所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除;所述结果集新写入所述数据缓存时,默认访问次数为1;所述访问频次f定义为:
其中,N为访问次数,Tnow为当前时间,Tcached为写入缓存时间。
缓存更新单元,用于更新数据缓存,具体包括:当接收到数据变更消息,根据数据变更消息更新所述数据缓存。
缓存备份与恢复单元,用于备份和恢复所述数据缓存,具体包括:每隔一预定时间将所述数据缓存以备份文件的形式保存到磁盘中,在断电、异常或重启后从磁盘中读取备份文件以恢复所述数据缓存。
实施例1:如图1所示,为本实施例的数据库检索系统中提高检索速度的方法的主要流程图,包括:
S101在内存中建立数据缓存。
优选的,缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集。
优选的,所述数据缓存进一步分为两个区域,其中,第一缓存区域中的记录包括代表缓存记录的检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;所述记录ID为数据库表记录的全局唯一标识;第二缓存区域的记录为数据库表的记录,包括:记录ID和记录信息;第一缓存区域的记录与第二缓存区域的记录为一对多的关系。
如果在数据缓存中缓存的是数据库表的记录,那么将无法快捷通过检索词直接从缓存中得到检索结果集,往往就需要缓存更多的记录并根据检索词来比对、筛选和判断后才能从缓存中得到检索结果集;如果直接缓存结果集,就可以快捷的通过检索词直接从缓存中得到结果集,但这样又可能导致数据缓存中有过多的数据冗余,降低了缓存空间的利用率,同时也为缓存的更新带来较大的开销。为此,本实施中采用了这种双缓存区域的结构。
如表1所示,为本实施的数据缓存的基本存储结构。
表1
表1中的数据项“结果集记录ID”即为结果集对应的数据库表的记录ID,所述记录ID为数据库表的记录在数据库表中的唯一标志。
优选的,所述数据缓存的大小由预定的最大缓存记录数决定。
通常建立数据缓存都要设定缓存的大小。数据缓存不是越大越好,数据缓存过大就会导致占用系统资源过大,同时为缓存的管理,如缓存淘汰算法的执行效率等等,带来较大的开销,使得缓存变得不够“快捷”而失去缓存的意义等很多负面的影响。设定缓存的大小可以采用多种方式,在本实施例中,比较方便的做法是采用记录数来度量缓存大小,一般采用限定最大缓存记录的数来设定缓存的大小。通常可根据数据库中数据量的大小来设定缓存,如在介电常数数据库中,矿物等物质有近万条,那么可将缓存记录数设为500条。
优选的,所述第一缓存区域、第二缓存区域均采用哈希表来组织;第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息。
通常哈希表是一种比较快捷的数据结构,哈希表为键/值对的集合,键/值对根据键的哈希代码进行组织而构成哈希表。在数据缓存技术中通常采用这种数据结构,本实施例中,第一缓存区域和第二缓存区域也采用哈希表来组织。采用哈希表有效避免了查找缓存记录时对关键词进行比较而能够通过关键词直接得到缓存记录,使得缓存机制更加快捷。
S102当获得检索词后,在所述数据缓存中查找,如果在数据缓存中查找到相应检索词的缓存记录,根据所述缓存记录生成检索结果集并返回,结束本次检索。
表1中的结果集记录ID可以是一个也可以是多个,每一个记录ID对应着第二缓存区域的一条记录,形成一对多的关系。这样当从检索系统中获得有效的检索词后,就可以在第一缓存区域中查找检索词,当查找到检索词后,再根据结果集记录ID中所含的记录ID,从第二缓存区域中查找到记录信息并组成结果集返回给检索系统。
S103如果在数据缓存中没有查找到,则检索数据库,返回检索结果集。
当在数据缓存中没有找到对应检索词的缓存记录,则通知数据库检索系统检索数据库。
S104如果检索结果集不为空,则将检索词及检索结果集写入所述数据缓存。
本发明的目的之一就是要减少构建缓存所消耗的资源。因此,采用了“使用后再缓存”,而不单独或建立专门的功能来构建缓存,这种策略能够有效减少因为构建数据缓存带来的系统资源的开销。对于介电常数数据库这类数据相对稳定的专业领域数据库应用系统来说,采用使用后再缓存的策略能有效提高数据缓存的利用率。而每次当触发数据库的检索后,都要将检索结果集写入数据缓存,其目的是为了保证缓存中缓存记录的时新性。
优选的,当接收到数据变更消息,根据所述数据变更消息更新所述数据缓存。
当数据库中的记录有更新时,就需要更新数据缓存,这样才能保证数据缓存中的记录与数据库记录的一致性。不论数据变更频繁与否,保证数据的一致性是必要的,否则就会导致数据缓存中查找到的结果与实际数据库中的结果不一致。保证数据一致性的方法和策略比较多,如果采用专门的进程来定期更新数据缓存,这种方法可能导致资源消耗过到大。本实施例中采用消息机制来更新数据缓存,就是当用户在数据库检索系统中编辑了相关数据库记录后,则触发消息通知,更新缓存中的数据,以减少系统资源的消耗。目前几乎所有操作系统及其开发平台都支持事件驱动模型,采用这种事件驱动模型容易实现这种消息更新机制。当然,如果数据库更新软件与数据缓存不在同一主机上,那么在触发数据更新事件后,就要通过网络方式来传递更新递消息。
优选的,每隔一预定时间将所述数据缓存以文件的形式保存到磁盘中,以便断电、异常或重启后从磁盘中读取数据以恢复所述数据缓存。
每次在内存中建立缓存时,先查找所述备份文件,若存在备份文件则用备份文件初始化所述数据缓存。在这种使用后再缓存的策略下,数据缓存中的缓存记录可以说是“来之不易的”,是通过用户长期使用后形成的热点数据。如果出现异常、重启那么缓存中的数据将丢失,又需要通过一段时间的应用才能够形成高热点的数据缓存。因此,很有必要将数据缓存定期的备份到磁盘中,通常为了不影响系统的运行,预定时间可以设定的大一些,比如设置为1小时,或者更长。本实施例中,可设定为每一天在访问不频繁的时间段备份一次。这样,缓存的备份对系统的资源消耗是极小的。
实施例2:如图2所示为本实施例的检索词及检索结果集写入数据缓存的流程:
S201在每次检索完数据库后,如果结果集不为空,则判断所述数据缓存是否已满,如果未满则执行S204,否则执行下一步骤S202。
本实施例中,通过判断第一缓存区域缓存记录数是否超过预先设定的记录数来实现对数据缓存是否已满的判断。
S202如果所述数据缓存已满,计算访问频次,找出访问频次最低的数据缓存记录
优选的,所述访问频次f定义为:
其中,N为访问次数,Tnow为当前时间,Tcached为写入缓存时间。
通常情况下,时间的单位可以是“秒”、“分”、“时”或“天”,一般访问热点管理中的频次计算的时间单位通常根据实际应用中的频繁程度来确定,在本实施例中采用“天”,依照上述公式,当某一检索结果新写入数据缓存时,容易算出其访问频次为1/天。这里,采用当前时间和写入时间差来计算访问频次,并根据这种访问频次而没有用单一的访问次数来淘汰数据缓存记录,其目的是为了提高数据缓存中缓存记录的流动性和时新性,这样可以使得一些过去访问次数高,但近期访问次数少的记录尽快的从数据缓存中淘汰出去,以确保数据缓存热度的时新性。
S203将所述数据缓存中访问频次最低的n条缓存记录移除,如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,执行下一步骤S204。其中,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1。
如果采用当缓存满时,将访问频次最低的一条记录从缓存中淘汰,这种方式可能就会导致频繁的访问频次的计算,因此本实施例中,采用了这种可选的方案。如果n的取值为1,那么当缓存记录已满的时候,每次写入结果集都会触发计算访问频次,这种方式能够精准的将访问频次最低的记录移除,同时,也便于缓存记录访问次数精准的累计,但是这样又会带来访问频次的计算过于频繁而增加开销。为了减少访问频次的计算,本实施例中,最大缓存记录数为500,那么可以将n的值设为5,就是每次计算访问频次后,将访问频次最低的5条记录移除,这样就可以写入5条新的检索结果集后,才会触发计算访问频次,减少了访问频次的计算次数。当有大于5条的最低访问频次的记录,在移除时,也是尽量保证数据缓存中缓存记录的时新性,将写入缓存时间较早的5条记录移除。
优选的,所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除。
在这种双缓存区域的结构中,移除记录时,需要根据第一缓存区域检索词对应的结果集记录ID,先从第二缓存区域中将所述记录ID的记录移除,再将第一缓存区域的检索词的缓存记录移除。在移除第二缓存区域中的记录时,还要判断其它检索词是否包括该记录ID,如果第一缓存区域中其它检索词也包括该记录ID,那么就不能将其从第二缓存区域中移除,否则将破坏其它检索词的数据完整性。如果要判断其它检索词是否包含该记录ID,通常就需要遍历第一缓存区域,逐一判断是否还有其它检索词包括该记录ID,这样将增加移除缓存记录的开销。本实施例中,采用了通过关联检索词数,利用计数的方式进一步减少了移除缓存记录带来的开销。在本实施例的这种缓存机制中,写入的检索词都是新的检索词,在第二缓存区域中如果要再次写入相同记录ID,那么该记录必然是被新的检索词引用,因此将其关联检索词数加1。由于采用哈希表,能够无需比对的判断出要写入的记录是否已经存在。而在每次移除第二缓存区域的记录时先将其关联检索词数减1,此时,如果关联检索词数为0,则表明第一缓存区域已经没有与之关联的检索词,并将其移除;如果关联词数减1后,仍然大于0,则表明该记录还被其它检索词引言,就不能移除。
S204将检索词及检索结果集写入所述数据缓存中。
优选的,所述结果集新写入所述数据缓存时,默认访问次数为1;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1。
新写入数据缓存的记录其访问次数默认值为1,这样当每次从数据缓存中读取了数据后,对该缓存记录的使用次数加1,就实现了对数据缓存中缓存记录的使用次数的计数。假如某个检索词在数据缓存中被淘汰后,再次进入数据缓存时,其使访问次数为1,也就是说,不再考虑该检索词过去的访问次数,这样有利于减少维护缓存的开销,同时保证数据缓存中的检索词的时新性。
实施例3:如图3所示为本实施例的一种数据库检索系统中提高检索速度的装置300,包括:
缓存构建单元301,用于在内存中建立数据缓存;缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集;所述数据缓存的大小由预定的最大缓存记录数决定;所述数据缓存进一步分为两个区域:第一缓存区域和第二缓存区域;第一缓存区域的记录与第二缓存区域的记录为一对多的关系;第一缓存区域、第二缓存区由两个哈希表构成,第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息。
数据查找单元302,用于在数据缓存中查找检索词,具体包括:获得的有效检索词后,在数据缓存中查找检索词,将查找到的数据缓存记录封装并返回结果集;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1;如果在数据缓存中没有查找到,则检索数据库。
缓存写入单元303,用于接收数据查找单元提供的检索词及检索结果集并将检索词及检索结果集写入所述数据缓存,具体包括:在获得检索结果集后,如果所述数据缓存未满,则将检索词及检索结果集写入所述数据缓存中;如果所述数据缓存已满,则计算访问频次,找出访问频次最低的数据缓存记录,将所述数据缓存中访问频次最低的n条缓存记录移除,再将检索词及检索结果集写入所述数据缓存中;如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,再将检索词及检索结果集写入所述数据缓存中;其中,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1;所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除;所述结果集新写入所述数据缓存时,默认访问次数为1;所述访问频次f定义为:
其中,N为访问次数,Tnow为当前时间,Tcached为写入缓存时间。
缓存更新单元304,用于更新数据缓存,具体包括:当接收到数据变更消息,根据数据变更消息更新所述数据缓存。
缓存备份与恢复单元305,用于备份和恢复所述数据缓存,具体包括:每隔一预定时间将所述数据缓存以备份文件的形式保存到磁盘中,在断电、异常或重启后从磁盘中读取备份文件以恢复所述数据缓存。
为了能够更好的理解本发明,下面将结合具体应用实例做进一步的详细描述。
如表2所示,为本实施例的数据库中矿物介电常数表(为便于描述,仅列举矿物介电常数表的主要信息)。
表2
在介电常数数据库检索系统初始应用时,缓存构建单元301所建立的数据缓存中没有任何缓存的记录。此时如果用户输入检索词“高钛渣”数据查找单元302在数据缓存中查找不到任何数据,经过判断后,检索数据库,如果数据库检索系统采用的是精确检索,那将得到单条高钛渣的记录。高钛渣的检索结果集中只有一条记录,数据库检索系统将结果集传送给缓存写入单元303,缓存写入单元303将数据写入缓存中,此时,缓存中的存储如表3所示。
表3
如果数据检索系统采用了实施相关度检索的技术,在检索“高钛渣”时,得到是与“钛”相关的矿物记录,如表2所示,在现有的矿物介电常数表中,有两条与“钛”相关的记录,在检索后的结果集中将会有两条记录,除“高钛渣”外,还包括“钛铁矿”。在检索完数据库后,将结果集写入数据缓存,那么数据缓存中的存储情况就如表4所示。
表4
其中,第一缓存区域的结果集记录ID的存储顺序是按照数据库检索系统提供的结果集的记录顺序存储的,这样在能够按方便的还原出原生的结果集而不改变其记录的顺序。这种采用划分第一缓存区域和第二缓存区域的方式有效避免了数据的冗余。假如此时用户输入检索词“磁铁矿”,在进行相关度检索时,在结果集中也会出现“钛铁矿”的记录,如果不采用划分区域而是单一区域中缓存结果集的话,那么“钛铁矿”的记录将会出现2次,产生了数据冗余。数据冗余不仅浪费缓存空间,而且给数据缓存的更新带来了较大不便,因为当“钛铁矿”数据库的表记录变更时,可能就需要更新多个缓存记录的结果集,而本实施例中,采用这种双缓存区域结构有效避免了类似问题。
如果在之后,有用户再次检索“高钛渣”时,那么数据查找单元302将在数据缓存中找到“高钛渣”的记录,并将访问次数加1,通过第一缓存区域的结果集记录ID的信息快速找到第二缓存区域中的记录ID1012和记录ID10015的记录信息,封装成结果集返回给数据库检索系统,将结果集显示给用户。整个检索过程中,直接从数据缓存中得到检索结果集,而无需检索数据库,由于缓存的是结果集,而且采用哈希表来组织数据缓存,就能够无需比对的在缓存中直接得到结果集返回给用户,较大程度上提高了检索速度。而此时,高钛渣的访问次数将变为2,按本实施例的设定,如果用户是在同一天进行检索,则计算检索词“高钛渣”的访问频次则为2/天。
在本实施例中,如果数据缓存的最大存记录数设置为500,在实际应用中,数据缓存中第一缓存区域的记录数达到最大记录数500时,每次触发数据库检索系统检索数据库后,缓存写入单元303就会淘汰访问频次低的缓存记录而将新的结果集写入数据缓存中,经过长时间的使用和对数据缓存记录的淘汰,在数据缓存将会形成一个高热度的数据缓存,这样将在较大程度上提高了数据缓存的利用率,进而提高数据库检索系统的检索速度。
本实施例所提供的这种方法和装置可适用于数据库服务器中,也适用于分布式的数据库应用程序服务器中并能够有效的减少I/O操作和通信流量,尤其对一些专业领域的数据库应用系统具有较高的实用价值。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (11)
1.一种数据库检索系统中提高检索速度的方法,其特征在于,包括:
在内存中建立数据缓存;
当获得检索词后,在所述数据缓存中查找;如果在数据缓存中查找到相应检索词的缓存记录,根据所述缓存记录生成检索结果集并返回,结束本次检索;如果在数据缓存中没有查找到,则检索数据库,返回检索结果集;
如果检索结果集不为空,则将检索词及检索结果集写入所述数据缓存。
2.根据权利要求1所述的方法,其特征在于:所述将检索词及检索结果集写入所述数据缓存包括:在每次检索完数据库后,如果所述数据缓存未满,则将检索词及检索结果集写入所述数据缓存中;如果所述数据缓存已满,则计算访问频次,找出访问频次最低的数据缓存记录,将所述数据缓存中访问频次最低的n条缓存记录移除,再将检索词及检索结果集写入所述数据缓存中;如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,再将检索词及检索结果集写入所述数据缓存中;其中,所述数据缓存的大小由预定的最大缓存记录数决定,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1。
3.根据权利要求1所述的方法,其特征在于:所述缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集。
4.根据权利要求1至3任一项所述的方法,其特征在于:所述数据缓存进一步分为两个区域,其中,第一缓存区域中的记录包括代表缓存记录的检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;所述记录ID为数据库表记录的全局唯一标识;第二缓存区域的记录为数据库表的记录,包括:记录ID和记录信息;第一缓存区域的记录与第二缓存区域的记录为一对多的关系。
5.根据权利要求1至3任一项所述的方法,其特征在于:所述结果集新写入所述数据缓存时,默认访问次数为1;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1。
6.根据权利要求4所述的方法,其特征在于:所述第一缓存区域、第二缓存区域均采用哈希表来组织;第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息。
7.根据权利要求4或6所述的方法,其特征在于:所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除。
9.根据权利要求1所述的方法,其特征在于:当接收到数据变更消息,根据所述数据变更消息更新所述数据缓存。
10.根据权利要求1所述的方法,其特征在于:每隔一预定时间将所述数据缓存以备份文件的形式保存到磁盘中,在断电、异常或重启后从磁盘中读取备份文件以恢复所述数据缓存。
11.一种数据库检索系统中提高检索速度的装置,其特征在于,包括:
缓存构建单元,用于在内存中建立数据缓存;缓存记录包括:检索词、访问次数、写入缓存时间以及对应于检索词的检索结果集;所述数据缓存的大小由预定的最大缓存记录数决定;所述数据缓存进一步分为两个区域:第一缓存区域和第二缓存区域;第一缓存区域的记录与第二缓存区域的记录为一对多的关系;第一缓存区域、第二缓存区由两个哈希表构成,第一缓存区域的哈希表的键为检索词而值包括:检索词、访问次数、写入缓存时间及检索结果集对应的数据库表的记录ID;第二缓存区域的哈希表的键为记录ID而值为记录信息;
数据查找单元,用于在数据缓存中查找检索词,具体包括:获得的有效检索词后,在数据缓存中查找检索词,将查找到的数据缓存记录封装并返回结果集;每次在所述数据缓存中查找到缓存记录后,将所述缓存记录的访问次数加1;如果在数据缓存中没有查找到,则检索数据库;
缓存写入单元,用于接收数据查找单元提供的检索词及检索结果集并将检索词及检索结果集写入所述数据缓存,具体包括:在获得检索结果集后,如果所述数据缓存未满,则将检索词及检索结果集写入所述数据缓存中;如果所述数据缓存已满,则计算访问频次,找出访问频次最低的数据缓存记录,将所述数据缓存中访问频次最低的n条缓存记录移除,再将检索词及检索结果集写入所述数据缓存中;如果存在大于n条的相同访问频次的缓存记录,则将写入缓存时间最早的n条缓存记录移除后,再将检索词及检索结果集写入所述数据缓存中;其中,所述数据缓存的大小由预定的最大缓存记录数决定,如果预定的最大缓存记录数为M,则n的取值范围为:M﹥n≧1;所述第二缓存区域的记录还包括关联检索词数,用于标识所述记录被第一数据缓存区域的多少个检索词所引用;当新写入第二缓存区域记录时,所述关联检索词数为1;每次当判断到有已存在的记录要写入第二缓存区域时,则将所述记录的所述关联检索词数加1;每次当要从第二缓存区域移除缓存记录时,将所述记录的所述关联检索词数减1,并判断所述关联检索词数是否为0,若为0,则将所述记录从第二缓存区域中移除,否则不移除;所述结果集新写入所述数据缓存时,默认访问次数为1;所述访问频次f定义为:
其中,N为访问次数,Tnow为当前时间,Tcached为写入缓存时间;
缓存更新单元,用于更新数据缓存,具体包括:当接收到数据变更消息,根据数据变更消息更新所述数据缓存;
缓存备份与恢复单元,用于备份和恢复所述数据缓存,具体包括:每隔一预定时间将所述数据缓存以备份文件的形式保存到磁盘中,在断电、异常或重启后从磁盘中读取备份文件以恢复所述数据缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310311814.2A CN103336849B (zh) | 2013-07-24 | 2013-07-24 | 一种数据库检索系统中提高检索速度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310311814.2A CN103336849B (zh) | 2013-07-24 | 2013-07-24 | 一种数据库检索系统中提高检索速度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103336849A true CN103336849A (zh) | 2013-10-02 |
CN103336849B CN103336849B (zh) | 2016-09-21 |
Family
ID=49245014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310311814.2A Expired - Fee Related CN103336849B (zh) | 2013-07-24 | 2013-07-24 | 一种数据库检索系统中提高检索速度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103336849B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593419A (zh) * | 2013-10-30 | 2014-02-19 | 华为技术有限公司 | 数据查询方法、装置、服务器及系统 |
CN104657392A (zh) * | 2013-11-25 | 2015-05-27 | 腾讯科技(深圳)有限公司 | 一种实现检索异常还原的方法及装置 |
CN105095424A (zh) * | 2015-07-17 | 2015-11-25 | 四川久远银海软件股份有限公司 | 一种实现医院his系统中药品的高并发检索方法 |
CN105243072A (zh) * | 2014-07-11 | 2016-01-13 | 北京神州泰岳软件股份有限公司 | 一种数据库查询方法及系统 |
CN105447043A (zh) * | 2014-09-01 | 2016-03-30 | 光宝科技股份有限公司 | 数据库及其数据访问方法 |
CN105447171A (zh) * | 2015-12-07 | 2016-03-30 | 北京奇虎科技有限公司 | 数据缓存方法与装置 |
CN105512222A (zh) * | 2015-11-30 | 2016-04-20 | 中国建设银行股份有限公司 | 数据查询方法及系统和数据读取方法及系统 |
CN105740445A (zh) * | 2016-02-02 | 2016-07-06 | 贵州大学 | 一种数据库查询方法及装置 |
CN106294607A (zh) * | 2016-07-29 | 2017-01-04 | 北京奇虎科技有限公司 | 缓存数据的更新方法及更新装置 |
CN106960016A (zh) * | 2017-03-03 | 2017-07-18 | 北京匡恩网络科技有限责任公司 | 向数据库插入数据的方法及系统 |
CN107301215A (zh) * | 2017-06-09 | 2017-10-27 | 北京奇艺世纪科技有限公司 | 一种搜索结果缓存方法及装置、搜索方法及装置 |
CN107590248A (zh) * | 2017-09-14 | 2018-01-16 | 广东欧珀移动通信有限公司 | 搜索方法、装置、终端和计算机可读存储介质 |
CN107766355A (zh) * | 2016-08-17 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 层级数据管理方法、层级数据管理系统及即时通信系统 |
CN108804234A (zh) * | 2017-04-28 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数据存储系统及其操作方法 |
CN108829837A (zh) * | 2018-06-19 | 2018-11-16 | 北京五八信息技术有限公司 | 一种信息查询方法、装置、设备及计算机可读存储介质 |
CN109614312A (zh) * | 2018-10-23 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 测试用例生成方法、装置、电子设备及存储介质 |
CN109885574A (zh) * | 2019-02-22 | 2019-06-14 | 广州荔支网络技术有限公司 | 一种数据查询方法及装置 |
CN109902092A (zh) * | 2019-02-22 | 2019-06-18 | 广州荔支网络技术有限公司 | 一种数据存储系统的操作方法、装置和移动终端 |
CN110377622A (zh) * | 2019-06-19 | 2019-10-25 | 深圳新度博望科技有限公司 | 数据获取方法、数据检索方法及请求响应方法 |
CN110968598A (zh) * | 2018-09-29 | 2020-04-07 | 北京京东尚科信息技术有限公司 | 数据请求管理方法、系统及装置 |
CN111882687A (zh) * | 2020-07-28 | 2020-11-03 | 广州珠江黄埔大桥建设有限公司 | 一种用于高速公路的车辆收费识别方法、系统及设备 |
CN112131455A (zh) * | 2020-09-28 | 2020-12-25 | 贝壳技术有限公司 | 列表页检索降级方法、装置、电子设备和存储介质 |
CN113314229A (zh) * | 2021-05-26 | 2021-08-27 | 北京京东拓先科技有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1548598A1 (en) * | 2002-09-10 | 2005-06-29 | Masaharu Tamatsu | Database re-organizing system and database |
CN101216821A (zh) * | 2007-01-05 | 2008-07-09 | 中兴通讯股份有限公司 | 数据采集系统的存储管理方法 |
CN101493835A (zh) * | 2009-01-09 | 2009-07-29 | 南京联创科技股份有限公司 | 基于hash算法内存和文件系统混合排重方法 |
-
2013
- 2013-07-24 CN CN201310311814.2A patent/CN103336849B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1548598A1 (en) * | 2002-09-10 | 2005-06-29 | Masaharu Tamatsu | Database re-organizing system and database |
CN101216821A (zh) * | 2007-01-05 | 2008-07-09 | 中兴通讯股份有限公司 | 数据采集系统的存储管理方法 |
CN101493835A (zh) * | 2009-01-09 | 2009-07-29 | 南京联创科技股份有限公司 | 基于hash算法内存和文件系统混合排重方法 |
Non-Patent Citations (2)
Title |
---|
刘明、曹炜: ""基于商品组合编码的进销存管理系统的设计"", 《昆明冶金高等专科学校学报》 * |
黄加旺等: ""空间基础数据入库方法的探讨"", 《测绘通报》 * |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593419A (zh) * | 2013-10-30 | 2014-02-19 | 华为技术有限公司 | 数据查询方法、装置、服务器及系统 |
CN104657392B (zh) * | 2013-11-25 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 一种实现检索异常还原的方法及装置 |
CN104657392A (zh) * | 2013-11-25 | 2015-05-27 | 腾讯科技(深圳)有限公司 | 一种实现检索异常还原的方法及装置 |
CN105243072A (zh) * | 2014-07-11 | 2016-01-13 | 北京神州泰岳软件股份有限公司 | 一种数据库查询方法及系统 |
CN105447043A (zh) * | 2014-09-01 | 2016-03-30 | 光宝科技股份有限公司 | 数据库及其数据访问方法 |
CN105447043B (zh) * | 2014-09-01 | 2018-09-11 | 光宝科技股份有限公司 | 数据库及其数据访问方法 |
CN105095424A (zh) * | 2015-07-17 | 2015-11-25 | 四川久远银海软件股份有限公司 | 一种实现医院his系统中药品的高并发检索方法 |
CN105512222A (zh) * | 2015-11-30 | 2016-04-20 | 中国建设银行股份有限公司 | 数据查询方法及系统和数据读取方法及系统 |
CN105447171A (zh) * | 2015-12-07 | 2016-03-30 | 北京奇虎科技有限公司 | 数据缓存方法与装置 |
CN105740445A (zh) * | 2016-02-02 | 2016-07-06 | 贵州大学 | 一种数据库查询方法及装置 |
CN106294607A (zh) * | 2016-07-29 | 2017-01-04 | 北京奇虎科技有限公司 | 缓存数据的更新方法及更新装置 |
CN107766355B (zh) * | 2016-08-17 | 2021-07-16 | 腾讯科技(深圳)有限公司 | 层级数据管理方法、层级数据管理系统及即时通信系统 |
CN107766355A (zh) * | 2016-08-17 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 层级数据管理方法、层级数据管理系统及即时通信系统 |
CN106960016A (zh) * | 2017-03-03 | 2017-07-18 | 北京匡恩网络科技有限责任公司 | 向数据库插入数据的方法及系统 |
CN108804234A (zh) * | 2017-04-28 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数据存储系统及其操作方法 |
CN108804234B (zh) * | 2017-04-28 | 2023-05-09 | 腾讯科技(深圳)有限公司 | 数据存储系统及其操作方法 |
CN107301215A (zh) * | 2017-06-09 | 2017-10-27 | 北京奇艺世纪科技有限公司 | 一种搜索结果缓存方法及装置、搜索方法及装置 |
CN107590248A (zh) * | 2017-09-14 | 2018-01-16 | 广东欧珀移动通信有限公司 | 搜索方法、装置、终端和计算机可读存储介质 |
CN107590248B (zh) * | 2017-09-14 | 2020-02-14 | Oppo广东移动通信有限公司 | 搜索方法、装置、终端和计算机可读存储介质 |
CN108829837A (zh) * | 2018-06-19 | 2018-11-16 | 北京五八信息技术有限公司 | 一种信息查询方法、装置、设备及计算机可读存储介质 |
CN110968598A (zh) * | 2018-09-29 | 2020-04-07 | 北京京东尚科信息技术有限公司 | 数据请求管理方法、系统及装置 |
CN109614312A (zh) * | 2018-10-23 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 测试用例生成方法、装置、电子设备及存储介质 |
CN109902092A (zh) * | 2019-02-22 | 2019-06-18 | 广州荔支网络技术有限公司 | 一种数据存储系统的操作方法、装置和移动终端 |
CN109902092B (zh) * | 2019-02-22 | 2020-05-05 | 广州荔支网络技术有限公司 | 一种数据存储系统的操作方法、装置和移动终端 |
CN109885574A (zh) * | 2019-02-22 | 2019-06-14 | 广州荔支网络技术有限公司 | 一种数据查询方法及装置 |
CN110377622A (zh) * | 2019-06-19 | 2019-10-25 | 深圳新度博望科技有限公司 | 数据获取方法、数据检索方法及请求响应方法 |
CN111882687A (zh) * | 2020-07-28 | 2020-11-03 | 广州珠江黄埔大桥建设有限公司 | 一种用于高速公路的车辆收费识别方法、系统及设备 |
CN112131455A (zh) * | 2020-09-28 | 2020-12-25 | 贝壳技术有限公司 | 列表页检索降级方法、装置、电子设备和存储介质 |
CN112131455B (zh) * | 2020-09-28 | 2021-09-17 | 贝壳找房(北京)科技有限公司 | 列表页检索降级方法、装置、电子设备和存储介质 |
CN113314229A (zh) * | 2021-05-26 | 2021-08-27 | 北京京东拓先科技有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103336849B (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103336849A (zh) | 一种数据库检索系统中提高检索速度的方法及装置 | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN103116661B (zh) | 一种数据库的数据处理方法 | |
CN102521269B (zh) | 一种基于索引的计算机连续数据保护方法 | |
Stoica et al. | Enabling efficient OS paging for main-memory OLTP databases | |
Ozcan et al. | A five-level static cache architecture for web search engines | |
Mahajan et al. | Improving the energy efficiency of relational and NoSQL databases via query optimizations | |
CN104536904B (zh) | 一种数据管理的方法、设备与系统 | |
CN104301360A (zh) | 一种日志数据记录的方法、日志服务器及系统 | |
US20120221577A1 (en) | Method of and apparatus for organizing data records in a relational database | |
US10042885B2 (en) | Index table based routing for query resource optimization | |
CN102521406A (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN102779138B (zh) | 实时数据的硬盘存取方法 | |
CN110309233A (zh) | 数据存储的方法、装置、服务器和存储介质 | |
CN114116716A (zh) | 一种层次数据检索方法、装置和设备 | |
US11080207B2 (en) | Caching framework for big-data engines in the cloud | |
CN114138193B (zh) | 一种分区命名空间固态硬盘的数据写入方法、装置及设备 | |
CN113821573A (zh) | 海量数据快速检索服务构建方法、系统、终端及存储介质 | |
US8051099B2 (en) | Energy efficient data provisioning | |
JP2022137281A (ja) | データ照会方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN110858210A (zh) | 数据查询方法及装置 | |
CN114090631A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN114020713A (zh) | 一种日志结构合并树的文件合并方法、装置、电子设备及存储介质 | |
US20130024483A1 (en) | Distribution of data within a database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160921 Termination date: 20210724 |