开发者社区 问答 正文

3千万行记录的表,如何提高查询效率

有一个3千万行记录的表,表里有个字段是记录的时间,现在需要根据这个时间查询一段范围内的数据,另外还要关联其它几个表,做联合查询,最终需要的数据是联合查询出来的结果.
现在查询一天的数据就要跑300s以上,有啥办法可提高点效率?
1

展开
收起
落地花开啦 2016-02-18 17:22:50 2638 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人
    1. where 中用 UNIX_TIMESTAMP函数就用不到索引了,看看能不能把时间提前计算好, 如果实在因为业务问题不能, 也把where条件中 h.value>=1 放到前面
    2. 看看是不是对 g.name, h.clock, i.key, h.value, hs.name 加上 索引了(还有join涉及的字段)
    3. 把 group by 中 the_date 直接换成 h.clock
      然后看看执行计划什么的
    2019-07-17 18:44:13
    赞同 展开评论
问答地址: