1
私はn + 1クエリの問題を抱えるアプリケーションを持っていますが、データを熱心に読み込む方法を実装したとき、私はアイデンティティマップを使用するので、オブジェクトは一度しか作成されません。PHP、SQLiteを使用した多数のクエリと比較したクエリ
ここに〜3000個のオブジェクトのベンチマークがあります。
first query + first object creation: 0.00636100769043 sec.
memory usage: 190008 bytes
iterate through all objects (queries + objects creation): 1.98003697395 sec.
memory usage: 7717116 bytes
ここで私は熱心な読み込みを使用します。それは、小さなクエリに来るとき
query: 0.0881109237671 sec.
memory usage: 6948004 bytes
object creation: 1.91053009033 sec.
memory usage: 12650368 bytes
iterate through all objects: 1.96605396271 sec.
memory usage: 12686836 bytes
だから私の質問は
- ですがSQLiteのちょうど魔法の雷速いですか? (私はMySQLの作業に慣れています)
- これは誰にも間違っているようですか?熱心なローディングではるかに優れたパフォーマンスが得られるはずですか?
Aha! SQLiteは私の期待よりもはるかに高いパフォーマンスを示します。 多くのクエリを実行しているスクリプトを使用し続けるのが最善でしょうか?彼らはどちらもほぼ同じ時間を取るので、私はそれが重要ではないと仮定しています。 –