简体   繁体   English

与MSSQL相比,MySQL Join查询速度较慢

[英]mysql join query is slow compared with mssql

I have the following simple join query 我有以下简单的联接查询

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

For some reason it just leaves MySQL hanging there for a lot of time until I get tired and cancel it. 由于某种原因,它使MySQL挂了很长时间,直到我累了并取消了它。 On the contrary, if run exactly the same code on MSSQL with the same data set the query takes a few seconds at most. 相反,如果在具有相同数据集的MSSQL上运行完全相同的代码,则查询最多需要几秒钟的时间。

Is there a parameter that needs to be changed on MySQL to speed up this type of queries? 是否需要在MySQL上更改参数以加快此类查询的速度?

Here's my table in 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;

There's two tables with exactly the same configuration as above, just different data 有两个表与上面的配置完全相同,只是数据不同

DBx.caseview p2015 has 197647 rows DBy.caseview p2014 has 122392 rows DBx.caseview p2015具有197647行DBy.caseview p2014具有122392行

Create an Index for CASENUMBER field. CASENUMBER字段创建索引。

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

Give it a few seconds to create the index and run the query again. 给它几秒钟的时间来创建索引并再次运行查询。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM