我有两个MYSQL表,A和B.表A有44,902行,而表B有109,583行。 我想比较两个表中的两列,并返回表A中找到匹配的行。我的,不成功的查询是:Mysql查询需要300多秒
SELECT pool.domain_name FROM `pool`, `en_dict` WHERE pool.domain_string = en_dict.word
和另一种变体:
SELECT a.domain_name FROM `pool` as a inner join en_dict as b on a.domain_string = b.word
这两种解决方案falied在300秒钟后将返回任何值。
我该怎么做才能减少找到匹配的时间?
P.S.我试图在查询结尾添加一个LIMIT,并设法在245秒内显示10个结果。
编辑:我的表结构如下:
--
-- Table structure for table `en_dict`
--
CREATE TABLE `en_dict` (
`word_id` bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT,
`word` varchar(35) NOT NULL,
PRIMARY KEY (`word_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=109584 ;
-- --------------------------------------------------------
--
-- Table structure for table `pool`
--
CREATE TABLE `pool` (
`domain_id` bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT,
`domain_name` varchar(100) NOT NULL,
`domain_tld` varchar(10) NOT NULL,
`domain_string` varchar(90) NOT NULL,
`domain_lenght` int(2) NOT NULL,
`domain_expiretime` date NOT NULL,
PRIMARY KEY (`domain_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=44903 ;
你对你的表定义键? –
请列出您的表格结构.. –
您是否编入了'pool.domain_string'和'en_dict.word'? – Mischa