mysql两张表left join,电脑就卡死。
左表tableLeft:userid,name。
右表tableRight:userid。
左表90000条数据,右表1000条数据。
select tableLeft.userid,tableLeft.name
from tableLeft left join tableRight on tableLeft.userid = tableRight.userid
where tableRight.userid is null
选出来的结果应该是90000-1000=89000条数据。如果tableRight里数据量为0,那么这条sql很快。现在是tableRight有1000条数据,一执行电脑就卡死了。
左表tableLeft:userid,name。
右表tableRight:userid。
左表90000条数据,右表1000条数据。
select tableLeft.userid,tableLeft.name
from tableLeft left join tableRight on tableLeft.userid = tableRight.userid
where tableRight.userid is null
选出来的结果应该是90000-1000=89000条数据。如果tableRight里数据量为0,那么这条sql很快。现在是tableRight有1000条数据,一执行电脑就卡死了。
show create table 右表;show index from 左表;
show index from 右表;explain select tableLeft.userid,tableLeft.name
from tableLeft left join tableRight on tableLeft.userid = tableRight.userid
where tableRight.userid is null;贴出以上信息以便分析。
//左表:
CREATE TABLE `mlt_bill` (
`rest_id` int(6) default NULL,
`bill_id` int(11) unsigned NOT NULL auto_increment,
`token` varchar(32) NOT NULL default '',
`drawer_event` varchar(32) default '忙鈥澛睹┾€溌?,
`billtime` int(11) default NULL,
`soup` varchar(32) default NULL,
`spice` varchar(32) default NULL,
`grand_total` float default NULL,
`pay_method` varchar(32) default NULL,
`cover_by` varchar(32) default NULL,
`cash_received` float default '0',
`cash_change` float default '0',
`cccharge` float default '0',
`userid` varchar(32) default NULL,
`guestnumber` varchar(4) default NULL,
PRIMARY KEY (`token`),
UNIQUE KEY `bill_id` (`bill_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
mlt_bill 0 PRIMARY 1 token A 82869 BTREE
mlt_bill 0 bill_id 1 bill_id A 82869 BTREE//右表:
CREATE TABLE `mlt_bill_feedback` (
`bill_id` int(11) unsigned default NULL,
`status` int(2) unsigned default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;左表是别人的表,右表是我自己新建的表。右表我可以随意修改,但是左表不能做任何改动。
缺乏bill_id索引,另外字符集与左表也不一致。
我自己用toad for mysql新建了表mlt_bill_feedback。
字符集什么都是默认的。
mysql有时候真的很麻烦,还存在这些事情。
眨眼的速度就好了
有没有索引 差别太大了