我想知道究竟发生了什么,因为 php 脚本将查询运行到数据库返回数据并且 php 脚本开始获取它们的那一刻。
理论上,我有一个带有巨大表的 Postgre 数据库,谈论 20 多列的 10/20 百万条记录,并且我有一个 php 脚本,它请求将数据库中的所有行放入某个文件中。
我的知识是:
- php 脚本使用 sql 查询运行 pg_query 命令
- 通过 postgres php 驱动程序/扩展查询被传递到数据库
- 数据库完成工作并将结果返回给驱动程序
- php postgres 驱动程序将结果存储在服务器 RAM 内存中,并将资源 id 返回给引用结果的 php 脚本
- pg_fetch_row 从 RAM 内存中读取记录
我正在尝试对执行上述工作的 php 代码进行最佳优化。
问题是:
- 我的知识正确吗?如果缺少某些内容或我对某些步骤不正确,请纠正我。
- 我怎么知道有多少 RAM 内存分配给数据库结果?如果我的服务器没有足够的内存,这可能很重要。
- 我知道我可以获取单行,然后将其存储到文件中,只要有行就重复这两个步骤,这样我就可以最大限度地减少 php 脚本所需的内存,但是如何影响资源使用的内存呢?
提前致谢。