浏览 3864 次
锁定老帖子 主题:大家给些思路,求改进办法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-10-16
![]() 现在我这边的实现方式是 mysql+redis 。 mysql有一张用户信息总表,然后根据业务抽取子表,要严格控制子表的大小,因为子表要查询,查询条件是动态拼的,条件不固定,索引不好建。然后把查询结果缓存到redis里,key是查询条件,定期失效。 数据量不大,1000w左右,但是就是感觉现在实现方式啰嗦,还不能实现实时搜索。有没有好的办法呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-10-19
最后修改:2012-10-19
搜索条件这么复杂,处理过程肯定也很啰嗦的了
但可以对常用的搜索字段创建索引,优化sql 这样返回的结果集应该可以变小很多,速度也会提高,还能降低CPU的消耗 |
|
返回顶楼 | |
发表时间:2012-10-19
最后修改:2012-10-19
我也有过你这样类似的情况,但数据量才非常少
我就直接返回所有的结果集,缓存整个结果集 在业务层处理搜索条件,一个一个remove掉不符合条件的行 |
|
返回顶楼 | |
发表时间:2012-10-19
可以考虑找一个基于内存的数据库,
然后将数据导到这个内存数据库里面去, 直接在内存数据库上做查询即可。 |
|
返回顶楼 | |
发表时间:2012-10-21
觉得定期更新redis缓存更好
|
|
返回顶楼 | |
发表时间:2012-10-22
实时性要求不高就缓存,定期更新缓存。
实时搜索的话,也就七个条件,多建几个index,优化下SQL |
|
返回顶楼 | |
发表时间:2012-11-18
不懂这种情况是不是用lucene 比较合适,期待大家解答 。。
|
|
返回顶楼 | |