【发布时间】:2011-09-05 15:41:12
【问题描述】:
我有这些表:
IdToName:
Id Name
1 A
2 B
RawData:
Son Father
B A
我想创建一个名为 Data 的新表,其中我将使用 Id 而不是字符串,即:
Data:
Son Father
2 1
我使用这个查询来做到这一点:
INSERT INTO `Data`
SELECT L.`ID`, P.`ID`
FROM `IdToName` L,
`IdToName` P,
`RawData` T
WHERE T.Father = P.Name
AND T.Son = L.Name
我有关于 RawData 的儿子和父亲以及 IdToName 的姓名的密钥。对于 2,800,000 行,此查询大约需要 7 分钟。有谁知道如何提高性能?
【问题讨论】:
-
你的列有索引吗?
-
请包括SELECT ... JOIN的执行计划
-
EXAMPLE SELECT L.ID, P.ID <rest of the SELECT query>的输出是什么? -
我不知道执行计划是什么:(我使用 ALTER TABLE ADD KEY 添加了键,它们与索引不一样吗?
标签: mysql performance join