前端之家收集整理的这篇文章主要介绍了
php – PDO fetchall()性能考虑因素?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在阅读了几篇关于
PHP的PDO fetchall()
函数的
性能影响的
文章后,我很好奇是否有另一种
方法可以在不
调用fetchall()的情况下完成相同的结果.
为了解释,大多数人认为fetchall()往往是资源密集型的.就我而言,我认为这不会是一个太大的问题.是的,我不得不从我的数据库中提取整个表并将其显示给用户,但最多只能有100行;我不相信这将是一个问题.但是,假设我需要提取100,000行,那么什么是更优化的解决方案呢?
假设,如果需要在单个响应中
输出所有100,则应将PDO ::
MysqL_ATTR_USE_BUFFERED_QUERY设置为false,执行
查询,并使用
fetch一次迭代一行结果集.详细说明,
PHP缓冲整个结果集,无论如何如果PDO ::
MysqL_ATTR_USE_BUFFERED_QUERY设置为true,是否
调用fetchAll().
好处是您可以大幅减少脚本的最大内存消耗,并且可以更快地开始流式输出,尽管完成的总时间可能需要或可能不会更长.
我忽略了在极端情况下你应该考虑的其他事情,比如输出缓冲等……