SQLite效率评测!

近期因为嵌入式系统上面要用到数据库方面的东西,对于数据库,我还是第一次接触,之前保存数据要不就是ini文件,要不就是xml;全新的挑战啊;

查阅资料,得知SQLite是一个非常不错的轻量级数据库,下载,就一个源文件,感觉老外水平就是牛,C语言运用炉火纯青,赞一个!

当然得感谢网友的无私奉献,贡献了很多可以借鉴的代码以及经验,经过修改,刚开始写1000条数据消耗的时间大概是21秒,感觉速度有点慢,

觉得不对劲,继续查阅相关资料,发现有这么个说法:


没有事务的时候,SQLite的插入操作使用了太多的IO操作,而是用事务的话,只需要一次IO。(http://www.cnblogs.com/rader/articles/1543760.html)

于是果断找资料,原来sqlite,每次insert的时候都会处理一次事务,那么3W多条数据,也就3W多事务处理,就这样悲剧了.(http://www.2cto.com/database/201208/146785.html)

修改后的代码如下:

    struct timeval tv, tvEnd;
    int i;
    sqlite3_exec( db, "BEGIN", 0, 0, 0);
    gettimeofday( &tv, NULL );
    printf("Start %d %d \n", tv.tv_sec, tv.tv_usec/1000);
    for ( i=0; i<100000; i++ )
    {
        result = sqlite3_exec( db, "insert into MyTable_1( name ) values ( 'abcdefghigh' )", 0, 0, &errmsg );
        if(result != SQLITE_OK )
        {
            printf( "
插入记录失败,错误码:%d,错误原因:%s\n", result, errmsg ); //不好意思,网上拷贝人家的代码,中文;
        }
    }    

    sqlite3_exec( db, "COMMIT", 0, 0, 0);

效率如下:

Use 0 sec 739 ms

10万条记录才花7.4ms,效率确实很高啊!





  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iowin888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值