mysql我有一张350万数据的表,怎么优化sum()查询?

就这样的一条sql,数据量太大,查询很慢。。

select ifnull(sum(total_stock_cost),0) from table;
阅读 721
评论
    5 个回答
    1. 实时要求高吗? 不高可以每天定时处理,结果另存
    2. 要求实时查,

      1. 可以存一个备份的未变更的数据表,然后根据未变更的数据求出总数。作为原始数据
      2. 有更新操作更新就更新原表
      3. 查询请求,根据更新时间,可以只查询最近时间范围更新的记录,计算差值+备份表的数据
      4. 定时备份,生成备份记录数据
      5. 写好备份和备份表同步的接口,防止备份出错,数据不一致
    3. 最简单的应该是用es

      吧你要进行 sum 的字段加上索引, 已及你的查询条件相关的字段

        • 62

        索引层面的优化都已经加上了

          分区或者分表

            应用层做优化?插入一条数据+1,删除数据-1
            MyISAM存储引擎会单独记录表的条数、、、但是换存储引擎感觉不现实了

              撰写回答

              登录后参与交流、获取后续更新提醒