SQLite是一款轻量级的数据库,不需要任何的安装就可以使用,并且还是开源的,这作为开发者的我们无疑是一个天大的福音。
但是在使用SQLite过程中,或许你会因为那奇慢无比的性能头疼不已,因为修改的性能是那么的低下。出现性能低下的情况是因为对SQLite的功能了解得不够,SQLite里有很多默认的设置导致了性能的降低。下面我将揭开提高SQLite性能的神秘面纱
1、 增大Cache值,在服务器允许的情况下,尽量增大Cache的值;
例如:PRAGMA cache_size = 256 * 1024; (SQLite默认页大小为1KB,cache_size如果为正数,则表示cache设置为多少页,如果为负数则表示设置为多少KB)
2、 手动事务,SQLite默认情况下为每一句SQL语句均自动加上事务,如果不手动调整事务,SQLite的效率很低;
开始事务:begin transaction(begin)
提交事务:commit transaction(end)
回滚事务:rollback transaction(rollback)
3、 设置Journal日志模式,最新版本的SQLite日志模式默认为TRUNCATE,除了修改外,其他性能均比较可观,如果修改比较多的话,建议使用PERSIST日志模式。当然,条件允许使用MEMORY更好。在使用其他日志模式的之前,需考虑意外断开数据库连接的情况。
例如:PRAGMA journal_mode = memory; (设置日志模式为内存模式)
4、 对于频繁使用的操作,可以采用一次Prepare,在SQLite中,Prepare是需要耗一些资源的,并且这些资源累积起来对于系统也是一笔不小的开销。在设计允许的情况下,建议多使用一次Prepare这种模式。
注意事项:在每次的bind之前,需要reset sqlite3_stmt对象
5、 如果使用一次性数据库,可以使用内存数据库”:memory:”,记住,字母必须全为小写。