php - Zend_DB 将大量数据导出到 csv 的正确策略是什么? – block – fetchAll – fetchRow

标签 php mysql zend-framework export zend-db

我必须导出大量数据。另外我还必须通过 php 对每条记录进行一点转换。导出大量数据的正确策略是什么?

  • 我是否可以使用 limit(1000,x) 将 Zend_Db 请求拆分为多个分块查询?
  • 我使用 fetchAll 还是 fetchRow?
  • 考虑到高性能,fetchrow 或 fetchall 哪个性能更好?

我无法使用 SQL OUTFILE,因为我必须解释来自一列的 xml/html。据我所知mysql无法做到这一点。这对我来说意味着,我可以使用 fetchrow 或 fetchall,但我无法在 mysql 服务器上进行处理。由于我正在获取大量数据,因此 fetchAll 可能会导致 php 内存不足。所以我不确定是否可以通过使用 fetchrow 来避免这种情况,或者是否必须使用 block ? fetchrow 比 fetchall 慢吗?

最佳答案

SELECT field, field1, field2 
INTO OUTFILE '/home/user/out.csv' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM your_table WHERE 1=1

关于php - Zend_DB 将大量数据导出到 csv 的正确策略是什么? – block – fetchAll – fetchRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198008/

相关文章:

javascript - 检查注册表中的用户名

php - phpMyAdmin 的 20,000 行限制的修复或迁移是什么?有什么真正不稳定的地方吗?

python - 找不到 openssl 库

php - 无法通过php文件将数据插入MySQL

php - 从 Google AuthSub 迁移到 OAuth2

php - MySQL 中的算术运算

php - 如何将 php var 传递给 js 文件中定义的函数

PHP 将 $this 传递给类外的函数

mysql - 从 MySql 导入 Sqoop 失败,线程 "main"java.lang.NoClassDefFoundError 中出现异常

zend-framework - 我的 zf 工具在错误的目录中创建产品 Controller - 是否有可用的命令列表