与mssql相比,mysql join查询速度慢

时间:2015-03-31 04:30:59

标签: mysql sql

我有以下简单加入查询

SELECT
  count(*) 
FROM 
  DBx.caseview p2015
  INNER JOIN DBy.caseview p2014 ON p2015.casenumber=p2014.casenumber;

出于某种原因,它只会让MySQL在那里停留很长时间,直到我累了并取消它。相反,如果在具有相同数据集的MSSQL上运行完全相同的代码,则查询最多需要几秒钟。

是否需要在MySQL上更改某个参数以加速此类查询?

这是MySQL中的表格

CREATE TABLE `caseview` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `CASEID` varchar(18) DEFAULT NULL,
  `CASENUMBER` int(10) DEFAULT NULL,
  `ACCOUNTID` varchar(18) DEFAULT NULL,
  `ACCOUNT` varchar(256) DEFAULT NULL,
  `ASSETID` varchar(18) DEFAULT NULL,
  `SAPPRODUCTGROUP` varchar(10) DEFAULT NULL,
  `PRODUCT` varchar(128) DEFAULT NULL,
  `FAMILY` varchar(128) DEFAULT NULL,
  `CONTACTID` varchar(18) DEFAULT NULL,
  `OWNERID` varchar(18) DEFAULT NULL,
  `TYPE` varchar(128) DEFAULT NULL,
  `PRIORITY` varchar(24) DEFAULT NULL,
  `ORIGIN` varchar(24) DEFAULT NULL,
  `SUBJECT` varchar(256) DEFAULT NULL,
  `STATUS` varchar(24) DEFAULT NULL,
  `LASTACTIVITY` varchar(1024) DEFAULT NULL,
  `INITALDESCRIPTION` varchar(1024) DEFAULT NULL,
  `CLOSEDDATE` datetime DEFAULT NULL,
  `CREATEDDATE` datetime DEFAULT NULL,
  `LASTMODIFIEDDATE` datetime DEFAULT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `ID_UNIQUE` (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=122393 DEFAULT CHARSET=utf8;

有两个表与上面完全相同的配置,只是不同的数据

DBx.caseview p2015有197647行 DBy.caseview p2014有122392行

1 个答案:

答案 0 :(得分:0)

CASENUMBER字段创建索引。

ALTER TABLE `caseview` ADD INDEX ( `CASENUMBER` ) ;

给它几秒钟来创建索引并再次运行查询。