1

我正在与他们处理大量数据的项目合作。在每个表中都有 100k 或更多数据可用。现在我需要运行 sql 更新查询,但我不工作。

我怎么解决这个问题 ?查询在我的本地主机上成功运行,数据很少。但是在服务器上它不起作用

请帮我。

UPDATE buzz_business_view b, daily_deals d
SET d.business_id = b.`Business ID`
WHERE d.phone = b.phone 

谢谢

4

2 回答 2

2

确保您要加入的列已编入索引。

使用 where 约束一次选择几行。不要试图一次更新整个表格。

根据表的主键在逻辑上将表划分为多个部分,并一次更新一个部分。

于 2013-01-11T19:44:40.833 回答
0

为了获得最佳性能,您需要为 JOIN 谓词提供合适的索引。

CREATE INDEX ... ON buzz_business_view (phone,`Business ID`) ;

CREATE INDEX ... ON daily_deals (phone) ;

当您说 UPDATE 语句“不起作用”时,该语句是否会引发错误,是否只是看起来挂起,或者该语句是否成功完成但结果与您预期的不一样。

于 2013-01-11T21:13:48.427 回答