sqlite 查询效率对比

sqlite 查询效率对比,第1张

目录

使用方面:

效率对比:

批量插入:

查询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


凡是过往,即为序章  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1325224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)