对大数据量建立缓存,设计到的查找排序问题

问题描述

我想对自建的简易搜索引擎的查询关键字建立缓存,将所有查询词都保存下来,并记录词频,当超过存储容量时,会根据词频替换掉词频小的查询词。要用到磁盘存储。请问应该怎么设计比较合理,效率也高呢?用哈希和归并排序可不可以呢?谢谢!

解决方案

解决方案二:
补充:是不是可以这么做:对查询词进行分类,对每个类别的查询词进行排序,得到top-k个放入内存缓存。
解决方案三:
该回复于2009-05-22 22:36:00被版主删除
解决方案四:
study
解决方案五:
好难啊,我是菜鸟
解决方案六:
kankan
解决方案七:
为什么要自己做呢,Lucene都有java和.net两个版本,有很好的相关实现,远不是楼主能够用几天的时间可以比拟
解决方案八:
kankan
解决方案九:
实现容易,就看效率了
解决方案十:
该回复于2009-05-27 16:58:42被版主删除
解决方案十一:
该回复于2009-05-27 16:58:41被版主删除
解决方案十二:
本人提供采用“内存数据库”方式实现该功能。推荐使用H2数据库的内存数据库工作模式,使用标准的JDBC技术访问,实现简单,性能应该还可以。
解决方案十三:
可以参考lucene
解决方案十四:
该回复于2009-05-23 23:26:23被版主删除
解决方案十五:
可以参考oracle的结构分sga/pga方式的缓存、安装block的方式进行存储与read,还有索引
解决方案:
不懂,mark

时间: 2024-08-01 21:11:09

对大数据量建立缓存,设计到的查找排序问题的相关文章

Mysql大数据量存储及访问的设计讨论

一.引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题.通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式.水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失.通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性:通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题:通过读写分离策略更

sqlserver 大数据量数据库设计问题请教

问题描述 sqlserver 大数据量数据库设计问题请教 小弟不才,第一次接大数据量项目,其中一个主要表用于存储采集数据(每秒一条数据,共5个采集点)数据量如下: 数据量估算(按秒): 采集点 1 5 一天数据 86400 432000 十天数据 864000 4320000 一个月数据 2592000 12960000 一年数据 31536000 157680000 我原先的设计就是很简单,按照上面数据估算,5个采集点,建立5个对应的表,然后每十天(也就是旬)创建一个历史表保存数据. 但是,头

利用Cache缓存数据DataTable数据提高大数据量访问性能

cache|访问|缓存|数据|性能 引言:在数据量不大的情况下,程序怎么写基本上性能差别不大,但是当我们面对数以万计的数据的时候,我想性能就是个不得不考虑的问题了,每写一个方法,每填充一笔数据都要考虑到性能问题,否则服务器将承担巨大的执行开销,如果服务器性能不好可能立即就死在那里了,所以在大数据量频繁访问的页面上,我们就必须考虑如何提高页面的性能了,本文将提供一种用cache提高访问性能的方法来解决此问题,在很大程度上提高页面加载数据的性能.本文列举的是论坛版块中帖子列表页面加载数据的实例.正文

大量数据-solr设计大数据量索引删除问题

问题描述 solr设计大数据量索引删除问题 solr索引了大量数据,随着时间的累积,数据量越来越大,根据时间来删除历史数据,用deletebyquery来删除的话 ,执行时间过长,最后optimize的时间也很长,易用性不是很好.有什么好的方法来解决删除历史索引这个问题吗?

大数据量下的数据库查询与插入如何优化? (整理)

数据库经常要做一些查询与插入,但是如果查询和插入的数据量过大的时候就会引发数据库性能问题,降低数据库工作效率.因此性能调优是大家在工作中都能够预见的问题,大到世界五百强的核心系统,小到超市的库存系统,几乎都会有要调优的时候.面对形形色色的系统,林林总总的需求,调优的手段也是丰富多彩. 1.尽量使语句符合查询优化器的规则避免全表扫描而使用索引查询 2.避免频繁创建和删除临时表,以减少系统表资源的消耗. 3.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理. 4.建立高效的索引

大数据量下高并发同步的讲解(不看,保证你后悔)(转)

  对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧. 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1.同步和异步的区别和联系 所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到 返回的值或消息后才往下执行其它的命令. 异步,执行完函数或方法后

大数据量下MySQL插入方法的性能比较

文章讲的是大数据量下MySQL插入方法的性能比较,不管是日常业务数据处理中,还是数据库的导入导出,都可能遇到需要处理大量数据的插入.插入的方式和数据库引擎都会对插入速度造成影响,本文旨在从理论和实践上对各种方法进行分析和比较,方便以后应用中插入方法的选择. 插入分析 MySQL中插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例: ·连接:(3) ·发送查询给服务器:(2) ·分析查询:(2) ·插入记录:(1x记录大小) ·插入索引:(1x索引) ·关闭:(1) 如果我们每插入一条都

php 大数据量及海量数据处理算法总结_php技巧

下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题.下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论. 1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数.将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明

大数据量,海量数据处理方法总结_数据库其它

下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题.下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论. 1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数.将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明