我需要根据另一个表中的列更新一个表中的多个列.首先,我只是更新其中一个.我尝试了两种方法,这两种方法都有效,但它们使用mySQL命令大约需要4分钟,而在php中运行则需要20多分钟.两个表都长约20,000行.
我的问题是,有更好或更有效的方法吗?
方法1:
UPDATE table_a,table_b
SET table_a.price = table_b.price
WHERE table_a.product_code=table_b.product_code
方法2:
UPDATE table_a INNER JOIN table_b
ON table_a.product_code = table_b.product_code
SET table_a.price=table_b.price
我猜这些基本上都以相同的方式工作,但我认为连接会更有效率. product_code列是随机文本,虽然是唯一的,并且每行与另一个表中的一行匹配.
还有什么我可以尝试的吗?
谢谢
更新:通过创建索引解决了这个问题.
CREATE UNIQUE INDEX index_code on table_a (product_code)
CREATE UNIQUE INDEX index_code on table_b (product_code)