当前位置:  开发笔记 > 数据库 > 正文

在iPhone上优化SQLite3

如何解决《在iPhone上优化SQLite3》经验,为你挑选了1个好方法。

我有一个使用SQLite3的应用程序.它运行得很好,但我想加快SQLite(写)访问的建议.大多数数据库操作都是写三元组(int,int,double),每秒大约20-50三倍.偶尔会有读数,但与母鸡的牙齿一样罕见(主要发生在装载时).

有没有人有关于优化(或者至少是去消极化)代码的建议?我错过了任何SQLite3快捷方式?(由于程序中的其他内容,使用CoreData是正确的.)

我在初始化期间准备语句st1.它是由准备

const char *sql = "insert into historic values (?, ?, ?)";
if (sqlite3_prepare_v2(database, sql, -1, &st1, NULL) == SQLITE_OK) ....

这个准备是一次性的.我用于保存的代码段如下(为清晰起见,我已删除了错误检查).

-(BOOL) saveHvalue:(int) fid time:(int) t value:(double) v type:(int) ftype
{
    {
        sqlite3_bind_int(st1, 1, fid);
        sqlite3_bind_int(st1, 2, t);
        sqlite3_bind_int(st1, 3, ftype);

        sqlite3_step(st1);
        sqlite3_reset(st1);
        sqlite3_clear_bindings(st1);
    }

    return YES;
}

Ana Betts.. 8

您是否在事务中批处理写入?仅此一项就可以为您节省大量时间; 你不能在一个交易中批量处理它们,或者日志将是巨大的,但每500-1000个插入一个事务将极大地加速你的代码.



1> Ana Betts..:

您是否在事务中批处理写入?仅此一项就可以为您节省大量时间; 你不能在一个交易中批量处理它们,或者日志将是巨大的,但每500-1000个插入一个事务将极大地加速你的代码.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有