caodongchun 发表于 2010-12-13 00:47:31

大幅提高SQLite导入导出数据速度的语句

实测加入100条记录加速前11秒多,加速后不到1秒
本例中是加入10000条记录,试想不提速的可怕结果

**** Hidden Message *****

pusofalse 发表于 2010-12-13 01:05:02

1、While $n <= 10000
2、$n = $n + 1
3、If $temp = "" Then ...

这3句,没看出在哪里提升效率了。
BEGIN和COMMIT语句倒是学习了。

caodongchun 发表于 2010-12-13 01:12:12

1、While $n
pusofalse 发表于 2010-12-13 01:05 http://www.autoitx.com/images/common/back.gif
BEGIN和COMMIT语句倒是学习了。

caodongchun 发表于 2010-12-13 01:18:37

本帖最后由 caodongchun 于 2010-12-13 01:21 编辑

我有一个2万条记录的数据库,记录着某个论坛所有的文字信息,便于日后全文本搜索与查询!
当需要进行数据库导入导出时必须要用到这个语句的,否则硬盘不停地转,还慢的要死

Ziya 发表于 2010-12-13 09:39:23

瞅瞅
前几天写那个sqlite相关的东西,一直感觉不给力

lpxx 发表于 2010-12-13 11:17:39

对于数据库方面的知识我需要补充一下

menfan1 发表于 2010-12-13 13:19:17

提高速度关键还是用上索引

caodongchun 发表于 2010-12-13 22:24:58

提高速度关键还是用上索引
menfan1 发表于 2010-12-13 13:19 http://www.autoitx.com/images/common/back.gif
是的,但索引也存在弊病,比如要做到全文本无条件模糊查询论坛中的数据,这些数据是不固定的,做索引将是一个不可想象的高难度工程!这也就是为什么有些论坛索引后的全文搜索却不好使的原因!还有些网站干脆屏蔽了全文本搜寻的功能,因为不做索引的无条件全文本模糊查询将大量耗费资源,当并发的查询过多时直接导致系统崩溃!
但是,我们可以通过AU3强大的IE自动控制功能,将文本内容全程纳入数据库中,这个过程可以称之为数据采集,数据库中可以以论坛帖子的id作为主值,之后在不做索引的前提下进行全文无条件模糊查询,实践证明单机运行这样的一种查询还是可以轻松搞定的,比如我的数据库中有某专业论坛一万八千个主贴,数据库体积有23M之多,在上述未作索引的前提下进行全文本无条件模糊查询时的速度完全可以接受,并在坛友得到广泛应用!
再说到这个帖子的主题:SQlite是一个文件型的数据库,当执行诸如insert,update这些命令时要进行打开文件并进行写操作,当进行数据库导入导出操作时,将会有大量的写操作密集执行,积少成多,无疑降低了运行速度!那么,在SQlite3之后,有了上述两个命令,将insert,update转换为事件,并在内存中运行,最后才会进行一次的写操作,这样极大地节省了磁盘写操作的次数,从而提高了效率!这就是Sqlite新版本中的新特性,值得推荐!

caodongchun 发表于 2010-12-13 22:27:04

本帖最后由 caodongchun 于 2010-12-13 22:30 编辑

关于对数据库的非索引,全文本无条件模糊查询可参见我的“源码集装箱”和“VOA资源汇总”,亲自体验一下单机版的这种最笨拙的查库方法的效率
http://www.autoitx.com/thread-18250-1-1.html
http://www.autoitx.com/thread-15328-1-1.html

Netfox 发表于 2010-12-26 10:00:36

怎么样加速的。

杨永全 发表于 2010-12-26 12:29:35

来学习 了。

auto 发表于 2010-12-26 22:28:45

SQlite 没有用过,ACCESS 本地模糊搜索也挺快的,可能跟机器配置也有关
还以为commit是ORACLE才有的,原来SQlite也有

philips 发表于 2010-12-27 10:01:03

谢谢分享

masterpcc 发表于 2010-12-27 10:32:57

谢谢分享!!

xdcysten 发表于 2010-12-27 12:12:30

不错,多谢楼主分享语句
页: [1] 2 3 4 5 6
查看完整版本: 大幅提高SQLite导入导出数据速度的语句