如果我有一个大表(100 万行)
我发送一个 SELECT * FROM 表(没有任何限制,其中...)
- 我使用 PDO 准备好的查询
- 我仅使用一个 PDO::fetch 方法(而不是 fetchAll)获取结果
mysql通信层发生了什么?
1) mysql 服务器是否将所有行发送到 mysql 客户端,而 mysql 客户端将第一行发送到 PHP? (所以大量的内存用在了PHP服务器和MySQL服务器上)
2) mysql 客户端是否只从 mysql 服务器获取网络上的一行? (所以大量内存仅用在MySQL服务器上)
(php 5.3.3 和 libmysqlclient1.6)
最佳答案
这取决于您选择的缓冲模式和mysql客户端版本。在您的情况下,数据将在 mysql 服务器端使用。
关于mysql - MySQL 客户端和 PDO 如何使用 fetch 方法接收大结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453951/