遇到一个问题,现业务中有一张表如下,一共有 650W 条数据, cid = 1 有 9.6W 条数据,cid = 4 有 354W 条数据, 本地查询 A、C、D 的速度还可以接受,大概在 2s 左右, 查询 B 比较慢,耗费了 30s,
本人数据库优化这方面不是太懂, 请问一下各位这是什么原因,如何优化呢?
表结构
CREATE TABLE `wei_money_log` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`cid` tinyint(2) NOT NULL,
`mid` int(11) NOT NULL,
`type` tinyint(1) NOT NULL,
`money` decimal(16,2) NOT NULL,
`log` varchar(120) NOT NULL,
`addtime` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `mid` (`mid`),
KEY `cid` (`cid`),
KEY `type` (`type`),
KEY `money` (`money`),
KEY `addtime` (`addtime`),
KEY `log` (`log`),
CONSTRAINT `wei_money_log_ibfk_1` FOREIGN KEY (`mid`) REFERENCES `wei_member` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
查询 A:
SELECT SUM(`money`) AS `money`
FROM `wei_money_log`
查询 B:
SELECT SUM(`money`) AS `money`
FROM `wei_money_log` WHERE cid = 4
查询 C:
SELECT SUM(`money`) AS `money`
FROM `wei_money_log` WHERE cid = 1
查询 D:
SELECT SUM(`money`) AS `money`
FROM `wei_money_log` WHERE id < 10000000
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.