我在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