gpt4 book ai didi

Mysql连接查询优化

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:40 25 4
gpt4 key购买 nike

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

最佳答案

SELECT  res.TIndex ,
res.PNumber ,
res.Sender ,
res.Receiver ,
sta.Nickname ,
rta.Nickname
FROM Results AS res
INNER JOIN Nodes AS sta ON res.sender_h = sta.name
INNER JOIN Nodes AS rta ON res.receiver_h = rta.NAME
  1. 为结果创建索引(发件人_h)
  2. 在结果 (receiver_h) 上创建索引
  3. 创建索引在节点上(名称)

关于Mysql连接查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5905686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com