我在for循环中运行mysql select查询3500次,并在PHP中对查询返回的值执行操作。该过程需要16秒来执行for循环。任何减少执行时间和提高性能的建议。谢谢!
发布于 2010-10-21 16:02:06
试着最小化查询的数量,你是否真的需要3500个查询,或者你可以在一次调用中选择所有的行?
如果不是这样,您可以通过使用预准备语句获得一些性能PDO为您提供了一个简单易用的接口。
http://dk2.php.net/manual/en/book.pdo.php
http://dk2.php.net/manual/en/pdo.prepare.php
如果我需要更具体的内容,请粘贴一些代码:)
发布于 2010-10-21 16:01:40
重构您的MySQL选择,使其只执行一次,而不是3500次。告诉我们有问题的查询,我们也许可以帮助您
发布于 2011-03-05 14:26:30
我和你面临着同样的问题。
您在操作期间打开的mysql连接的数量将是至关重要的。尝试在一个连接中执行它们。如果您需要多个连接,请使用mysql_pconnect。
避免使用mysql无法缓存的命令。(例如NOW())有关此类命令的列表,请查看此处的链接:http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html我通过将查询从实时更改为每小时来实现这一点。
尽量避免大的语句,试着将其分解成小的语句,并使用代码将它们捆绑在一起。语句越小,越容易缓存,从而带来更好的性能。
最后,如果您需要快速解决方案,memcached是一个非常好的、快速实现的解决方案。
一般的指导原则是,如果你能执行更少和更简单的语句,那就越好。
https://stackoverflow.com/questions/3985376
复制相似问题