我有一个有 n+1 查询问题的应用程序,但是当我实现一种急切加载数据的方法时,我发现绝对没有性能提升。我确实使用身份映射,所以对象只创建一次。
这是约 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。)
- 这对任何人来说都是错误的吗?急切加载不应该提供更好的性能吗?