我在mysql中的两个表:Mysql的连接查询优化
Results Table : 1046928 rows.
Nodes Table : 50 rows.
我用下面的查询和查询的执行连接这两个表是非常非常慢。
select res.TIndex, res.PNumber, res.Sender, res.Receiver,
sta.Nickname, rta.Nickname from ((Results res join
Nodes sta) join Nodes rta) where ((res.sender_h=sta.name) and
(res.receiver_h=rta.name));
请帮我优化此查询。现在,如果我想拉动前5排,大约需要5-6分钟。谢谢。
CREATE TABLE `nodes1` (
`NodeID` int(11) NOT NULL,
`Name` varchar(254) NOT NULL,
`Nickname` varchar(254) NOT NULL,
PRIMARY KEY (`NodeID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `Results1` (
`TIndex` int(11) NOT NULL,
`PNumber` int(11) NOT NULL,
`Sender` varchar(254) NOT NULL,
`Receiver` varchar(254) NOT NULL,
`PTime` datetime NOT NULL,
PRIMARY KEY (`TIndex`,`PNumber`),
KEY `PERIOD_TIME_IDX` (`PTime`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
发布2个表的SHOW CREATE TABLE输出 – 2011-05-06 00:47:22
该查询甚至不是有效的。 – 2011-05-06 00:51:42
你只是指拼写错误还是有更大的想法?我没有看到任何逻辑错误的东西,只是'tra' vs'rta' – 2011-05-06 00:54:29