我有两个表格,一个名为raw_data
,它有150米行,另一个称为income
,它也有大约150米行。我正在尝试运行以下查询,并在几个小时后似乎卡住了。在raw_data
,MemberID
和SiteID
有索引,在income
,PersonID
和SiteID
有索引,这两个表的存储引擎都是MyISAM,因为我们使用了%99选择查询。MySQL双重内部连接更新性能差
UPDATE `income` `t1`
INNER JOIN `raw_data` `t2`
ON `t1`.`PersonID` = `t2`.`MemberID` AND `t1`.`SiteID` = `t2`.`SiteID`
SET `t1`.`Age` = `t2`.`Age`,
`t1`.`Gender` = `t2`.`Gender`,
`t1`.`Sport` = `t2`.`Sport`,
`t1`.`PersonType` = `t2`.`PersonType`,
`t1`.`BookingType` = `t2`.`BookingType`,
`t1`.`TemplateName` = `t2`.`TemplateName`
请您帮我改进性能并减少此查询的时间?
也许发布EXPLAIN的输出以帮助诊断性能差的问题? –
+1解释计划。此外,这是什么意思“被卡住”?查询完成了吗?它是否部分或完全更新您的数据? –
它根本不工作,表被锁定,所以无法检查状态。几个小时后,我正在查询。 –