我正在编写一个 PHP 框架,可用于可视化大量数据。我无法将所有数据提取到内存中并对其进行处理(如排序、过滤等)。所以我有一个 sql 查询生成器,它构造 sql 查询并将所有处理部分推送到 sql server。有没有办法用 PHP 做到这一点?或者是否有某种可用的 C 库以二进制形式存储数据并减少处理时的内存使用量?
问问题
112 次
2 回答
1
Zend_Db_Select是 Zend_Db 和 Zend Framework 的一部分,它允许您通过推送和修改其中的一部分以编程方式创建您的查询(您提到的查询构建器)。
于 2011-12-07T16:49:50.510 回答
1
我大量使用 PHPExcel 中的缓存引擎(使用 APC、对象序列化、php://temp、磁盘存储、内存中 SQLite、memcache 和其他选项),它可以处理大量(数百万)单元格对象。问题是通过尽可能多地考虑 php 的有限内存来减少内存开销,同时尝试保持合理的执行速度:任何在 PHP 内存之外存储数据的单元缓存都会增加执行速度开销。
使用 igbinary 对数据进行序列化是一个很好的折衷方案,但您仍然可以达到内存限制。它与 PHP 内置的序列化一样快,但在压缩数据方面效率更高。
我想说尽可能多地在数据库上做,因为数据库是为这种工作而设计的。
于 2011-12-07T17:00:53.077 回答