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