sqlite3_步骤()是如何工作的?

sqlite3_步骤()是如何工作的?,sqlite,Sqlite,我有一个正在运行的查询,它在十分之一秒内执行,但是我需要很多秒来迭代sqlite3_step();我习惯于在服务器上运行mysql,其中查询在特定的时间内运行,不了解sqlite_step()是如何工作的。当我迭代时,查询是否在一段时间内完成?这如何处理分组语句?或者只是从内存/io增量返回行?大部分工作是在初始语句执行期间还是在迭代期间完成的?SQLite只执行返回下一行所需的最小工作量。 在某些情况下,几乎所有操作都是在对sqlite3_step()的第一次调用中完成的(例如,当您使用GRO

我有一个正在运行的查询,它在十分之一秒内执行,但是我需要很多秒来迭代sqlite3_step();我习惯于在服务器上运行mysql,其中查询在特定的时间内运行,不了解sqlite_step()是如何工作的。当我迭代时,查询是否在一段时间内完成?这如何处理分组语句?或者只是从内存/io增量返回行?大部分工作是在初始语句执行期间还是在迭代期间完成的?

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

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