如何加快在一个表中进行mysql查询所花费的时间?
我有一个表如何加快在一个表中进行mysql查询所花费的时间?,mysql,Mysql,我有一个表visit,其中大约有350.000行。 计划是: DROP TABLE IF EXISTS `visit`; CREATE TABLE `visit` ( `VisitId` int(11) NOT NULL AUTO_INCREMENT, `VisitorId` int(11) NOT NULL, `ApplicationId` char(36) NOT NULL, `Timestamp` datetime NOT NULL, PRIMARY KEY (`Vis
visit
,其中大约有350.000行。
计划是:
DROP TABLE IF EXISTS `visit`;
CREATE TABLE `visit` (
`VisitId` int(11) NOT NULL AUTO_INCREMENT,
`VisitorId` int(11) NOT NULL,
`ApplicationId` char(36) NOT NULL,
`Timestamp` datetime NOT NULL,
PRIMARY KEY (`VisitId`),
UNIQUE KEY `VisitId-index` (`VisitId`) USING BTREE,
KEY `VisitVisitor` (`VisitorId`) USING BTREE,
KEY `VisitTimestamp` (`Timestamp`) USING BTREE,
KEY `VisitTestIndex` (`ApplicationId`,`Timestamp`) USING BTREE,
KEY `VisitTestIndex2` (`VisitorId`,`ApplicationId`,`Timestamp`) USING BTREE,
CONSTRAINT `FK-visit-application` FOREIGN KEY (`ApplicationId`) REFERENCES `application` (`ApplicationId`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `visit-visitor` FOREIGN KEY (`VisitorId`) REFERENCES `visitor` (`VisitorId`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
一个简单的查询,如
SELECT visit.`VisitorId`, visit.`TimeStamp` FROM visit WHERE (visit.`ApplicationId` = '00000000-0000-0000-0000-000000000000')
速度非常慢(50-60秒)。我能做些什么来加快速度呢?你能分享
explain
结果吗?嗨@thewildmoose使用解释计划来更好地理解你的查询。@Andy K-有一个复合索引键VisiteTestIndex
(应用程序ID
,时间戳
)使用BTREE,@DarshanMehta解释返回:选择类型:简单表:访问可能的关键字:VisiteTestIndex关键字:VisiteTestIndex关键字:108参考:常量行:1670860额外:使用索引条件