在更新多条记录时,我总是在循环中使用简单的sql update语句。这意味着sql很快,但数据库连接了多次。最近,我一直在想,使用循环来构建一条一次执行多个更新的sql语句是否会更好。
这有很大的不同吗?我使用的是PHP5.6和MySql。
谢谢。
发布于 2017-02-20 00:53:22
最好的解决方案是完全避免循环。
如果绝对需要使用循环,最好在数据库端使用,因为这将消除与PHP/数据库通信相关的开销。
发布于 2017-02-20 00:59:29
如Optimizing UPDATE Statements所述
获得快速更新的另一种方法是延迟更新,然后在以后连续进行多次更新。如果锁定表,同时执行多个更新要比一次执行一个更新快得多。
您可能还会发现Optimizing INSERT Statements上的页面很有帮助,内容也很丰富。
总而言之,在最一般的术语中:连接一次并发送一条UPDATE语句比连接一次并发送多条UPDATE语句要好,这反过来又好于多次连接以在每个连接上发送一条UPDATE语句。
除此之外,还有许多技术可以用来进一步优化-但我们需要了解手头的具体配置和要求。
https://stackoverflow.com/questions/42329976
复制相似问题