【发布时间】:2013-01-18 11:24:38
【问题描述】:
我正在使用 PDO 从我的 MySQL 数据库中获取结果。
如果我只执行执行语句,大约需要8 seconds。 (连续做同样的事情 350 次。)
当添加 fetchAll() 语句时,它会上升到 28 秒。这是正常行为吗?
我在 web 服务器和 db 服务器之间进行了网络测试速度,它在 87 Mbits/sec 附近,所以这不是问题。有什么想法吗?
【问题讨论】:
-
我很好奇,它获取了多少行?
-
难道你不能找到一种方法来逐个记录地处理结果集并省去在 PHP 中为整个事情分配内存的麻烦吗?
-
同意@eggyal - fetchAll 非常低效;对于大多数用途来说,最好循环遍历数据集,一次获取一条记录。
-
我原以为 execute 会更好地使用整体,因为它更高效且更安全(允许绑定参数,从而消除用户转义或引用参数的要求)。
-
您是否在
SELECT语句中提供了LIMIT子句?