1

我有一个有 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

所以我的问题是

  1. 当涉及到小查询时,SQLite 是否神奇地快如闪电?(我习惯于使用 MySQL。)
  2. 这对任何人来说都是错误的吗?急切加载不应该提供更好的性能吗?
4

1 回答 1

1

您的“问题”的一部分是 SQLITE 在小查询上的速度快如闪电!

“问题”的另一个症状是因为 SQLITE 是访问单个本地文件的嵌入式代码,没有编组参数、通过网络发送、打开表空间文件、编组回复等的正常开销。数据库。

于 2009-07-13T01:57:07.573 回答