【发布时间】:2016-08-14 19:14:17
【问题描述】:
我有这个问题:
SELECT `variationID`, count(DISTINCT(`userID`))
FROM data WHERE `testID` = XXXX AND `visit` = 1 GROUP BY `variationID`
;
查询需要很多时间。如何加快查询速度。
select_type 表类型 possible_keys key key_len ref rows 过滤的额外简单数据
ref dc3_testIDPage,dc3_testIDvarIDPage,user_test_varID_url
dc3_testIDvarIDPage 8 const 33106102 100.00 在哪里使用
这是创建表的输出:
CREATE TABLE `data` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`userID` bigint(17) NOT NULL,
`testID` bigint(20) NOT NULL,
`variationID` bigint(20) NOT NULL,
`url` bigint(20) NOT NULL,
`time` bigint(20) NOT NULL,
`visit` bigint(20) NOT NULL DEFAULT '1',
`isTestPage` tinyint(1) NOT NULL,
PRIMARY KEY (`id`,`testID`),
KEY `url` (`url`),
KEY `dc3_testIDPage` (`testID`,`url`),
KEY `dc3_testIDvarIDPage` (`testID`,`variationID`,`url`),
KEY `user_test_url` (`userID`,`testID`,`url`),
KEY `user_test_varID_url` (`userID`,`testID`,`variationID`,`url`)
) ENGINE=InnoDB AUTO_INCREMENT=67153224 DEFAULT CHARSET=latin1
【问题讨论】:
-
欢迎来到 Stack Overflow。感谢您发布 EXPLAIN 计划。您还可以编辑上面的帖子以添加来自
SHOW CREATE TABLE data的输出吗?要将其格式化为代码块,请突出显示它并使用ctl-k或{}编辑器工具栏按钮。
标签: mysql