问答

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

作者:admin 2021-09-06 我要评论

就这样的一条sql,数据量太大,查询很慢。。 select ifnull(sum(total_stock_cost),0) from table; ### 实时要求高吗? 不高可以每天定时处理,结果另存 要求实...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

select ifnull(sum(total_stock_cost),0) from table;
###
  1. 实时要求高吗? 不高可以每天定时处理,结果另存
  2. 要求实时查,

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

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

###

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

###

分区或者分表

###

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • mysql我有一张350万数据的表,怎么优化

    mysql我有一张350万数据的表,怎么优化

  • PHP的foreach还有什么更优雅的写法?

    PHP的foreach还有什么更优雅的写法?

  •  Cannot recognize the token foo

    Cannot recognize the token foo

  • 在重量级锁的情况下等待池里的线程被no

    在重量级锁的情况下等待池里的线程被no

腾讯云代理商
海外云服务器