使用PHP,SQLite进行多次加载与许多查询

时间:2009-07-13 01:24:25

标签: php sqlite eager-loading benchmarking

我有一个有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. 这对任何人来说都是错误的吗?不应该急切加载提供更好的性能吗?

1 个答案:

答案 0 :(得分:1)

你的“问题”的一部分是SQLITE在小型查询上闪电般快!

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