Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
392 views
in Technique[技术] by (71.8m points)

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

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

select ifnull(sum(total_stock_cost),0) from table;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
  1. 实时要求高吗? 不高可以每天定时处理,结果另存
  2. 要求实时查,

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...