Mysql查询优化-sum()函数

Mysql查询优化-sum()函数,mysql,query-optimization,Mysql,Query Optimization,我创建了下表: CREATE TABLE `clicks_summ` ( `dt` INT(7) UNSIGNED NOT NULL, `banner` SMALLINT(6) UNSIGNED NOT NULL, `client` SMALLINT(6) UNSIGNED NOT NULL, `channel` SMALLINT(6) UNSIGNED NOT NULL, `cnt` INT(11) UNSIGNED NOT NULL, `lpi

我创建了下表:

CREATE TABLE `clicks_summ` (
    `dt` INT(7) UNSIGNED NOT NULL,
    `banner` SMALLINT(6) UNSIGNED NOT NULL,
    `client` SMALLINT(6) UNSIGNED NOT NULL,
    `channel` SMALLINT(6) UNSIGNED NOT NULL,
    `cnt` INT(11) UNSIGNED NOT NULL,
    `lpid` INT(11) NULL DEFAULT NULL,
    UNIQUE INDEX `dt` (`dt`, `banner`, `client`, `channel`, `lpid`),
    INDEX `banner` (`banner`),
    INDEX `channel` (`channel`),
    INDEX `client` (`client`),
    INDEX `lpid` (`lpid`),
    INDEX `cnt` (`cnt`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB;
我使用以下查询从此表中获取行/记录:

 select client, sum(cnt) cnt
 from clicks_summ cs
 group by client;
太可怕了!执行此查询大约需要一秒钟<代码>解释向我展示


所以,问题是:我如何加速这个查询?我尝试在不同的字段上索引此表,但没有任何合理的成功。现在,这个表中有331036行,我想,没有那么大。

试试craete
INDEX client\u cnt(client,cnt)
。另一种加快查询速度的方法是升级硬件:)

一件很酷的事情


如果where子句中始终有5列,则5列的分组索引将优于5个单独索引;)

这对我有帮助,谢谢!这个查询是一个更大的查询的一部分,所以我将测试整个查询并发布结果!