我正在与他们处理大量数据的项目合作。在每个表中都有 100k 或更多数据可用。现在我需要运行 sql 更新查询,但我不工作。
我怎么解决这个问题 ?查询在我的本地主机上成功运行,数据很少。但是在服务器上它不起作用
请帮我。
UPDATE buzz_business_view b, daily_deals d
SET d.business_id = b.`Business ID`
WHERE d.phone = b.phone
谢谢
我正在与他们处理大量数据的项目合作。在每个表中都有 100k 或更多数据可用。现在我需要运行 sql 更新查询,但我不工作。
我怎么解决这个问题 ?查询在我的本地主机上成功运行,数据很少。但是在服务器上它不起作用
请帮我。
UPDATE buzz_business_view b, daily_deals d
SET d.business_id = b.`Business ID`
WHERE d.phone = b.phone
谢谢
确保您要加入的列已编入索引。
使用 where 约束一次选择几行。不要试图一次更新整个表格。
根据表的主键在逻辑上将表划分为多个部分,并一次更新一个部分。
为了获得最佳性能,您需要为 JOIN 谓词提供合适的索引。
CREATE INDEX ... ON buzz_business_view (phone,`Business ID`) ;
CREATE INDEX ... ON daily_deals (phone) ;
当您说 UPDATE 语句“不起作用”时,该语句是否会引发错误,是否只是看起来挂起,或者该语句是否成功完成但结果与您预期的不一样。