mysql中求和函数的最佳查询?
我的问题是:mysql中求和函数的最佳查询?,mysql,database,performance,runtime,Mysql,Database,Performance,Runtime,我的问题是: 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秒 如何加快运行时间?确保在compid上有索引 也
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秒
如何加快运行时间?确保在compid上有索引 也可以用作避免访问表eg的复合索引
create index idx_compid on userhistory (compid, acctupdatetime, acctinputoctets, acctoutputoctets)
或者至少是一个包含所有列的组合,其中
create index idx_compid on userhistory (compid, acctupdatetime)
这里没什么可谈的。你能添加你的表定义、解释计划和一些用户历史记录大小的指示吗?这里你唯一能做的就是在
WHERE
子句中的列上添加索引。我在compid上有索引,idi有一百万条记录。