【发布时间】:2013-07-03 16:58:26
【问题描述】:
如果我有一张大桌子(1M 行)
我发送一个 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 做 1 m 行?
-
PDOStatement::fetch — 从结果集中获取下一行
-
什么问题?我已经使用了将近 1G 行的 mysql...
-
Zod,您的链接超出主题 ^^ 我不是在谈论优化 MySQL 查询(我实际上知道怎么做,阅读查询计划...),而是如何将数据发送到带有 PDO::Fetch 方法的 MySQL 客户端
标签: mysql memory pdo client fetch