【问题标题】:best query for sum function in mysql?mysql中求和函数的最佳查询?
【发布时间】:2018-01-27 10:25:11
【问题描述】:

我的查询是:

SELECT SUM(`acctinputoctets`) , SUM(`acctoutputoctets`) 
FROM `userhistory`
WHERE `compid`    = 1
AND acctupdatetime between  DATE_ADD(CURDATE() , INTERVAL 0 hour) 
 AND  DATE_ADD(CURDATE() , INTERVAL 6 hour);

//14.9 秒!!!

如何加快运行时间?

【问题讨论】:

  • 这里没什么好说的了。你能添加你的表定义一个解释计划和一些用户历史大小的指示吗?
  • 您在这里唯一能做的就是在WHERE 子句中的列上添加索引。

标签: mysql database performance runtime


【解决方案1】:

确保你有一个关于 compid 的索引

对于避免访问表例如复合索引也很有用

create index idx_compid on userhistory (compid, acctupdatetime, acctinputoctets, acctoutputoctets)

或者至少是所有列在哪里的组合

create index idx_compid on userhistory (compid, acctupdatetime)

【讨论】:

  • 我有关于 compid 和 id 的索引
  • 我有 100 万条记录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多