日志存在mysql里面,现在的问题是,默认日志页为当天的日志信息,现在测试发现的问题是,如果日志数量达到千万级的时候,一开始的页面就非常卡,这个是开始页面的查询语句;这里面为了达到数据量很大的目的,时间才改为1410243201
另外这个页面里面有搜索功能,千万级的数据一搜索就更卡,搜索语句都会有addtime。现在问题内存使用量很大,搜索也很慢。一开始sql where里面的条件字段都已经加上了索引,为全文索引的字段使用了like
求大神告知解决方案!!!!
16 回答
森栏
TA贡献1810条经验 获得超5个赞
我是这样想的,日志的话肯定会越来越大的。如果你坚持使用mysql的话,日后的表会越来越大,查询的时候如果查询的跨度太大就是全表扫描,你可以把日志按照每个月分表,然后这样查询的时候加上索引还是可以的。当然我推荐文件存储日志
慕雪6442864
TA贡献1812条经验 获得超5个赞
这个情况可以冗余一个addDayTime字段,只用精确到天,然后建立索引,用这个字段来进行查询会快非常多,但是后台查询条件就不能精确到时分秒了。
还有日志查询不要一次性查出来,可以分页加载,用limit获取当页的数据,毕竟一次性加载出来也没什么意义,电脑屏幕就这么大显示不了这么多。
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
分表吧,按照日期进行分表。这样查询的数据量会小一点。还有就是分页。不可能一次性取出来那么多数据给别人看吧。楼上哥们有人提议文件存储,我觉得这个也是可以的。
狐的传说
TA贡献1804条经验 获得超3个赞
between and 索引失效
2、like也可以用索引,like "字段%" 该字段加了索引且是后% explain type =range
3、全文索引 考虑使用第三方 coreseek 对中文支持也好
4、考虑分区 根据range 分区
- 16 回答
- 0 关注
- 419 浏览
添加回答
举报
0/150
提交
取消