目录
使用方面:
效率对比:
批量插入:
查询1000万条
众所周知,sqlite3提供了三种查询数据的接口,分别是 sqlite3_exec,sqlite3_get_table,sqlite3_prepare_v2,这三种在使用和效率上有什么区别呢?
使用方面:sqlite3_exec 函数,需要传入一个函数指针,每一条查询结果在回调函数函数中取得,当然在C++11基础上还可以使用lambda函数,见下
int retCode = sqlite3_exec(m_sqlite_db, sql_str,
[](void *data, int columns , char **field_values, char **column_names)->int
{
for(int i=0; i
另外两个函数的使用见 sqlite 使用问题总结
效率对比:前提:单表,表中有16个字段。
批量插入:这是只对比使用sqlite3_prepare_v2方式批量插入1000万条数据的情况。
在显示开启事务的情况下,批量插入1000万条数据花费92秒,反之在花费了?? 秒(想测试一下,结果等了3个小时没有等到结果),可见批量插入数据时开启显示事务的重要性。
查询1000万条使用sqlite3_exec 查询花费63秒
使用sqlite3_get_table 查询花费84秒
使用sqlite3_prepare_v2 查询花费61秒
可见查询是效率 sqlite3_prepare_v2 > sqlite3_exec > sqlite3_get_table
凡是过往,即为序章
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)