SQLite优化方法_SQLite

例如:向数据库中插入100万条数据,在默认的情况下如果仅仅是执行

sqlite3_exec(db, “insert into name values ‘lxkxf', ‘24'; ”, 0, 0, &zErrMsg);

将会重复的打开关闭数据库文件100万次,所以速度当然会很慢。因此对于这种情况我们应该使用“事务”。

具体方法如下:在执行SQL语句之前和SQL语句执行完毕之后加上

rc = sqlite3_exec(db, "BEGIN;", 0, 0, &zErrMsg);

//执行SQL语句

rc = sqlite3_exec(db, "COMMIT;", 0, 0, &zErrMsg);

这样SQLite将把全部要执行的SQL语句先缓存在内存当中,然后等到COMMIT的时候一次性的写入数据库,这样数据库文件只被打开关闭了一次,效率自然大大的提高。有一组数据对比:

测试1: 1000 INSERTs

CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t1 VALUES(1,13153,'thirteen thousand one hundred fifty three');
INSERT INTO t1 VALUES(2,75560,'seventy five thousand five hundred sixty');
... 995 lines omitted
INSERT INTO t1 VALUES(998,66289,'sixty six thousand two hundred eighty nine');
INSERT INTO t1 VALUES(999,24322,'twenty four thousand three hundred twenty two');
INSERT INTO t1 VALUES(1000,94142,'ninety four thousand one hundred forty two');

SQLite 2.7.6:
13.061

SQLite 2.7.6 (nosync):
0.223

测试2: 使用事务 25000 INSERTs

BEGIN;
CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t2 VALUES(1,59672,'fifty nine thousand six hundred seventy two');
... 24997 lines omitted
INSERT INTO t2 VALUES(24999,89569,'eighty nine thousand five hundred sixty nine');
INSERT INTO t2 VALUES(25000,94666,'ninety four thousand six hundred sixty six');
COMMIT;

SQLite 2.7.6:
0.914

SQLite 2.7.6 (nosync):
0.757

可见使用了事务之后却是极大的提高了数据库的效率。但是我们也要注意,使用事务也是有一定的开销的,所以对于数据量很小的操作可以不必使用,以免造成而外的消耗。

时间: 2024-08-15 09:14:58

SQLite优化方法_SQLite的相关文章

注册表优化方法

系统注册表的简易优化方法 注册表是电脑的重要数据资源.优化注册表有利于系统的快速运行. 下面就来看一下我的注册表优化方法. 修改磁盘缓存加速XP 磁盘缓存对XP运行起着至关重要的作用,但是默认的I/O页面文件比较保守.所以,对于不同的内存,采用不同的磁盘缓存是比较好的做法. 3lian素材 到注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\IoPageLockLimi

Web应用服务器优化方法

Web应用服务器优化方法 在对Web服务器进行优化时要根据真实的Web应用系统的情况和特征来采取有针对性地优化方案.首先根据不同的网络特性来看:在局域网中,降低M T U (最大传输单位)值对可以避免复制数据和求校验,而通过优化select系统调用或在Socket事件处理器中执行计算可以优化请求并发管理,利用HTTP1.1持续连接等都可以使系统性能得到相应的改善,但在广域网的环境下却没有什么大的作用,有的甚至恰恰相反. 例如:减少用户连接的MTU会增加服务器处理开销,采用网络延迟.带宽限制和使用

盘点一下那些古老的优化方法现在还管用吗

从老周刚开始进入seo行到现在,可以说经历了seo的各个阶段,也目睹了N多优化方法或者说流派或者说学说的流行和衰落. 例如关键词堆砌,包括title.keywords和description的关键词堆砌; 例如关键词密度,在description或者文章内容内大量插入关键词,就为了凑足关键词密度; 甚至还有一段时间某些号称SEO专家们在研究关键词在页面里的分布是呈"F"形还是呈其他什么字母形状的分布更好优化; 如果说以上几种算是正常的研究,那么还有些专家们研究的是怎么欺骗百度甚至跟他换

SQL语句的优化方法

优化|语句 在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化

建材类企业网站长尾关键词选择技巧与优化方法

随着互联网信息的爆发时增长,越来越多的网民都在互联网上搜索各种各样的文字来寻找到自己想要的东西,这也证明了互联网的时代已经超越了现实中的我们,当网民们想在百度上找到暖气片并购买,他们就会在百度搜索框上输入"暖气片哪种品牌最好"如果对暖气片的种类不了解,他们会在百度搜索框上输入"什么样类型的暖气片最好"如果对暖气片的价格不是很熟悉,他们会在百度搜索框上输入"暖气片的价格是多少钱".这些往往是我们想不到的,也是用户随手输入的文字,然而这些文字真的可以

对传统网站优化方法的简单分析

网站优化,是目前做自然排名的主要技术.通过相应性的技巧,将设定好的关键词,有效的提升到搜索引擎的首页.进而,有效的提高网站流量与转化率.做这行的,是一项枯燥的生活.而且,需要的时间较长的.因此,需要一种良好的心态. 传统的网站优化方法,主要是从站内与站外,围绕两个大的方面,做出的相应性工作.从站内来说,如内容的更新.内链的建设.从站外来讲,如外链的建设.这些都是大家熟知,且在有效操作的要点.这些是常态的工作,需经常性的去维持,有效性的做好. 有的优化人员,认为只做站内就好了,无须再去做站外.这样

什么才是真正的SEO优化方法呢

现在普遍做SEO的人越来越往SEC上面发展,可能对于大家来说SEC不是很熟悉,但是要是翻译过来,肯定大家对SEC一点都不陌生,而且可能在推广网站上你曾经还是用过这样的方法,SEO翻译过来也就是搜索引擎欺骗,用欺骗搜索引擎的方式提高网站的排名,所以说现在的人真正遵循尊重SEO方法的人是越来越少了,彻底忘记了SEO中真正的含义,所谓SEO也就是搜索引擎推广,在我们推广网站的时候要用合理的手段进行推广,不要用搜索引擎欺骗等手段来提高网站的排名,假如说今天你用SEC的方法做上去排名,排名在搜索引擎的第一

学会反思 让优化方法在检讨中进步

失败不是成功之母,只有反思和检讨才是,因为学会反思和检讨才能发现自己不足,也只有不断的反思和检讨才会让自己不断进步.这个道理也同样适用于网站优化,有些人认为网站优化核心方法无外乎这么几条,牢牢掌握了并认真去做了就行了.持有这种观点无可厚非,但是我们知道,面对各种层出不穷的优化手段,搜索引擎也在不停的调整改变自己的算法,一些原本行之有效的方法也许将不再奏效.作为网站建设和网站优化者,唯一能做到的就是保持平和心态,并学会反思,让优化方法在检讨中进步. 一.学会反思是应对搜索引擎算法不断调整的需求 搜

浅谈Dede建站系统的SEO优化方法

DEDE建站系统是非常受欢迎的,而且还是免费的,所以很多人都选择dede系统来做网站,可是dede系统的优化却不简单,很多人因此并不能够将网站做到很好的排名,下面就让笔者来给大家介绍有关优化DEDE系统的方法! 一:标题优化方法 如果大家使用默认的模式,那么网站看起来非常的难看,所以有必要把站点名称作为标题的优化,看看下面的修改方法! 列表页,频道页标题写成 栏目名称-seo标题-网站名称即<title>{dede:field.title/}-{dede:field.seotitle /}-{