论坛首页 综合技术论坛

大家给些思路,求改进办法

浏览 3864 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-10-16  

现在我这边的实现方式是 mysql+redis 。

mysql有一张用户信息总表,然后根据业务抽取子表,要严格控制子表的大小,因为子表要查询,查询条件是动态拼的,条件不固定,索引不好建。然后把查询结果缓存到redis里,key是查询条件,定期失效。

数据量不大,1000w左右,但是就是感觉现在实现方式啰嗦,还不能实现实时搜索。有没有好的办法呢?
  • 大小: 22.6 KB
   发表时间:2012-10-19   最后修改:2012-10-19
搜索条件这么复杂,处理过程肯定也很啰嗦的了

但可以对常用的搜索字段创建索引,优化sql
这样返回的结果集应该可以变小很多,速度也会提高,还能降低CPU的消耗

0 请登录后投票
   发表时间:2012-10-19   最后修改:2012-10-19
我也有过你这样类似的情况,但数据量才非常少
我就直接返回所有的结果集,缓存整个结果集
在业务层处理搜索条件,一个一个remove掉不符合条件的行
0 请登录后投票
   发表时间:2012-10-19  
可以考虑找一个基于内存的数据库,

然后将数据导到这个内存数据库里面去,

直接在内存数据库上做查询即可。
0 请登录后投票
   发表时间:2012-10-21  
觉得定期更新redis缓存更好
0 请登录后投票
   发表时间:2012-10-22  
实时性要求不高就缓存,定期更新缓存。

实时搜索的话,也就七个条件,多建几个index,优化下SQL
0 请登录后投票
   发表时间:2012-11-18  
不懂这种情况是不是用lucene 比较合适,期待大家解答 。。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics