[英]How does PDOStatement::fetch() work internally?
我到处都读到使用PDOStatement::fetch()
意味着无论结果集有多大,都不会耗尽内存。 这就引出了一个问题:行存储在哪里?
PHP必须在从数据库获取结果时将结果存储在某处。 这些结果存储在哪里? 或者,它们是否存储在数据库中,PHP每次都必须查询数据库的下一行?
它类似于读取文件,打开流并逐段读取数据,除了数据库内部结构更复杂之外。
例如,查看$ driver_options PDO :: prepare的描述,因此您甚至可以设置可滚动光标以控制读取方向。
PDOStatement :: fetch将使您从查询中获得下一行。 我不认为它不会用完内存(如果一行包含大量数据),因为您的数据将保存在内存中(了解Buffered和Unbuffered查询 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.