PDO fetchall()性能考虑因素?

Mla*_*gma 7 php mysql pdo

在阅读了几篇关于PHP的PDO fetchall()功能的性能影响的文章后,我很好奇是否有另一种方法可以在不调用的情况下完成相同的结果fetchall().

为了解释,大多数人认为这fetchall()往往是资源密集型的.就我而言,我认为这不会是一个太大的问题.是的,我不得不从我的数据库中提取整个表并将其显示给用户,但最多只能有100行; 我不相信这将是一个问题.但是,假设我需要提取100,000行,那么什么是更优化的解决方案呢?

goa*_*oat 7

假设,如果需要在单个响应中输出所有100,000行,则应设置PDO::MYSQL_ATTR_USE_BUFFERED_QUERYfalse执行查询,并使用fetch一次迭代结果集.详细说明,如果PDO::MYSQL_ATTR_USE_BUFFERED_QUERY设置为true,则无论是否调用fetchAll(),php都会缓冲整个结果集.

好处是您可以大幅减少脚本的最大内存消耗,并且您可以更快地开始流式输出,但总完成时间可能会或可能不会更长.

我忽略了在极端情况下应该考虑的其他事情,比如输出缓冲等......