在jvm缓存中存储500 MB的数据是否很好,可以像sql查询一样进行搜索?

时间:2012-04-05 17:47:13

标签: performance caching lucene

我要求在1秒内为数据库表获取搜索查询的结果。此时数据库表缓慢返回结果。必须将表移动到缓存并从那里搜索,以便搜索结果到来我希望在现有的搜索页面上进行谷歌类型页面刷新 - 这意味着页面应该在用户输入时刷新 为了实现这一点,搜索结果应该在一秒钟内返回。我的数据库是teradata.Its查询至少需要2到3秒。因此我想寻找其他选项,如缓存。我想使用缓存以便结果来得快。

列是
 公司,Id,行业,家长... 4更多
它是一个搜索页面。所以如果用户输入“ja”所有项目从ja开始,如

公司------------- Id -------------行业--------------父母
jaico ------------- 222 ------------- paint ------------- Jaico asia
Jammy fruit ------------- 232 ------------- food ------------- jammy International

该表包含320万行,并且存在8列。搜索数据需要返回所有8列。按字节顺序,每行有150个字符。总字节数为320万* 150个字符= 480兆字节。我需要将这么多数据存储在缓存中,然后在它们之间激发搜索查询,例如sql(分组,类似,顺序)。在这种情况下使用的最佳选择

  1. ehcache的
  2. jboss cache
  3. Inifinispan
  4. Apache Lucene
  5. 请建议哪个选项好。在内存中使用缓存或使用lucene更好吗? 需要缓存什么? - > 这是一个包含8列的320万行表。
    为什么要缓存? - > 它将被缓存,以便搜索结果比更快。如果我使用sql查询,则需要很长时间.Hence我想转向缓存数据。

1 个答案:

答案 0 :(得分:2)

看看Apache Solr - 您可以通过正确的部署获得这种性能。一方面,您可以分享查询以分发查询。