php连接mysql 性能_php – MySQL更新连接性能

博客讨论了如何提高MySQL中更新操作的效率。作者尝试了两种方法来更新两个约20,000行的表之间的价格列,但发现无论使用简单更新还是内连接更新,执行时间较长。问题在于产品代码列没有索引。通过为两个表的product_code列创建唯一索引,问题得到了解决,显著提高了更新速度。
摘要由CSDN通过智能技术生成

我需要根据另一个表中的列更新一个表中的多个列.首先,我只是更新其中一个.我尝试了两种方法,这两种方法都有效,但它们使用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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值