Web 应用程序中的数据库游标获取

Posted

技术标签:

【中文标题】Web 应用程序中的数据库游标获取【英文标题】:DB Cursor fetching in Web Applications 【发布时间】:2010-05-09 10:37:29 【问题描述】:

我一直不明白这一点:在 Web 开发中,[n|re] 一个一个地获取结果有意义吗?

我的意思是,既然可以使用PDOStatement->fetchAll(),为什么还要使用PDOStatement->fetch*()

【问题讨论】:

***.com/questions/2770630/… 【参考方案1】:

fetchAll() 会将所有结果提取到一个大数组中。

如果结果集非常大,它可能会超过 php 脚本的内存限制。

一个纯粹的fetch() 会一一获取每条记录,消除这种危险。

这是我能想到的不使用fetchAll()的唯一原因。

【讨论】:

当然,但是我们通常不会发出像SELECT * FROM oneMillionRowsTable 这样没有限制子句的SQL 语句,至少我在Web 应用程序中从未见过这样的查询。 @Alix 我也没有,但这并非完全不可想象。我更喜欢fetch 变体,因为“我的 PHP 脚本的内存比 mysql 服务器的内存更有限”。不过,fetchAll 可能更快,因为它只与服务器对话一次 - 我不知道,我从未测量过它。

以上是关于Web 应用程序中的数据库游标获取的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中使用游标(sqlite查询)搜索数据库

如何从数据库中获取 Graphql 中的分页游标?

从 Oracle 游标中的下一行获取数据

如何使用游标从sqlite android中的多个列中获取数据

何时使用 MySQLdb 关闭游标

Sql中的游标是干嘛的