前言
SQLite数据库由于其简单、灵活、轻量、开源,已经被越来越多的被应用到中小型应用中。甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作。因此我最近编写有关遥感数据处理的程序的时候,也将SQLite引入进来,以提高数据的结构化程度,并且提高大数据的处理能力(SQLite最高支持2PB大小的数据)。但是最开始,我发现,直接使用SQL语句的插入效率简直低的令人发指的。后来不断查文档、查资料,才发现了一条快速的“数据插入”之路。本文就以插入数据为例,整合网上和资料书中的各种提高SQLite效率的方法,给出提高SQLite数据插入效率的完整方法。(大神们勿喷)
1 数据
我使用的电脑是Win7 64位系统,使用VC2010编译,SQLIte版本为3.7.15.2 ,电脑CPU为二代i3处理器,内存6G。实验之前,先建立要插入数据的表:
1 |
create table t1 (id integer , x integer , y integer, weight real) |
2 慢速——最粗暴的方法
SQLite的API中直接执行SQL的函数是:
1 |
int sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**) void *, char **errmsg) |
直接使用INSERT语句的字符串进行插入,程序部分代码(完整代码见后文),如下:
继续阅读 »
近期评论