SQLite不同插入方法的效率对比测试

综合对比之后,决定采用SQLite数据库存储计算结果文件。SQLite中的插入是较为耗时的,不同的插入方式所花费的时间可能会有天壤之别。几种插入方式可参考博客http://www.cnblogs.com/5211314jackrose/p/5817764.htmlSQLite应用之实例代码,本文对几种方法进行了时间上的测试。
本人电脑为win7的64位操作系统,32g内存4核处理器,为了一般性,链接的SQLite3.dll为32位的。
测试用例为创建一个表CREATE TABLE tableName ( id INT PRIMARY KEY, x REAL, y REAL, z REAL),并插入点的3个方向的坐标INSERT INTO tableName VALUES( i, 0.0, 0.0, 0)。不断调整点的数量,从100到1000000,测试插入操作所花费的时间,测试结果如下表所示。

SQLite不同插入方法的效率对比测试


结果分析如下。
1、基本插入和绑定插入耗时基本一致,并且在插入100个点的情况下就已经耗时5秒左右,基本处于不可接受的状态。二者耗时一致的原因可能是每个插入语句都会开关文件,耗费大量的时间,绑定所节省下来的时间相对开关文件所耗费的时间来说可以忽略不计。
2、当点的数量低于1000个时,事务插入和事务绑定插入耗时相近,随着点的增多,事务绑定明显快于事务插入,并且快到将近10倍。较快的原因应该是绑定的方法减少了SQL语句编译的时间,随着点的增多,优势更加明显。

至于查询的时间,对于SQL来说,查询的速度是非常之快的,如下图所示。

SQLite不同插入方法的效率对比测试


原文地址:https://www.cnblogs.com/ljy339/p/7507079.html