大量のデータを視覚化するために使用できる PHP フレームワークを作成しています。すべてのデータをメモリにフェッチして処理することはできません (並べ替え、フィルターなど)。そのため、SQLクエリを構築し、すべての処理部分をSQLサーバーにプッシュするSQLクエリビルダーがあります。PHPでそれを行う方法はありますか?または、データをバイナリで保存し、処理中のメモリ使用量を削減する C ライブラリが利用可能ですか?
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 に答える