SQLite数据库以其轻便、灵活使其非常适合在移动端使用。如果我们操作的数据量比较少的时候几十毫秒或者几百毫秒就可以完成。但量变引起质变这一哲学定律在无处不在。
譬如,我们向数据库插入数据时一般这样做:
在数据量比较小的情况下,耗时比较小,但是当数据量比较大的时候,比如超过100条的时候,耗时就会在1秒左右,1000条的话大概在10秒左右,这时候我们可以做出一点优化,采用下面这种方式:
图2中这种方式操作100条数据耗时在150ms左右,速度提升明显。
之所以会有如此大的差距,是因为在图1中SQLite默认为每一次操作开启了一个事务,插入100次就会开启100个事务,每次插入操作会经历“事务开启->SQL执行->事务关闭”这个过程,而图2中的方式显示开启一个事务,执行过程为“事务开启->SQL执行->...->SQL执行->事务关闭”,所以速度会快很多。
最后,我们在对数据库进行操作的时候最好评估数据量的大小从而判断是否需要放到子线程中去。