sqlite3_step()如何工作?

时间:2014-08-21 23:37:25

标签: sqlite

我有一个查询,我正在运行在十分之一秒内执行,但是我需要花费很多秒来迭代sqlite3_step();我习惯在查询在特定时间内运行的服务器上运行mysql,并且不了解sqlite_step()是如何工作的。在迭代时,查询是否在一段时间内完成?这如何与分组语句一起使用?或者它只是从memory / io原因逐步返回行?大部分工作是在初始语句执行期间还是在迭代期间完成的?

1 个答案:

答案 0 :(得分:0)

SQLite只返回返回下一行所需的最少工作量。 在某些情况下,几乎所有内容都是在第一次调用sqlite3_step()时完成的(例如,当您使用GROUP BY或ORDER BY进行复杂查询时),但在一般情况下,执行将分布在所有sqlite3_step()上。 1}}来电。

在客户端/服务器系统中,服务器必须计算尽可能多的行以补偿网络通信延迟,并且因为可以进行并行操作。 对于像SQLite这样的嵌入式数据库,情况并非如此;预先计算输出行并将它们存储在某处只会浪费内存。