`
guoyiqi
  • 浏览: 963995 次
社区版块
存档分类
最新评论

关于sqlite3的性能(转自:http://hi.baidu.com/snailzone/blog/item/da9368662bc94f25aa184c2b.html)

 
阅读更多
我想对于80%的网站来说,它们的数据量采用access数据库已经足够了。使用mysql或者sqlserver这些中型数据库,往往需要增加额外的使用费,而且数据量不大的时候,它们所反映的性能跟access数据库并没有多大的区别,故对于一般"玩家"来说并不容易接受。最近sqlite数据库异军突起,采用其作为后台数据库的"玩家"也越来越多,我接触它也有一年多的时间了,但都是在嵌入式平台上面使用,因为数据量小,一直没有对其进行过特别的性能测试。近期我也想"玩"一个网站,sqlite和access之间的选择就摆在我面前了,事实胜于雄辩,就做了一个小程序来测试。
  测试环境是奔4 3G + 512内存 + vs2005 c#。由于网上有人说加上下面的三句话:
   PRAGMA synchronous = OFF;
   PRAGMA page_size = 4096;
   PRAGMA cache_size = 70000;
可以让sqlite的性能大幅度增加(不知道是否体现在超大数据量的时候),我也特地尝试了一下。
采用事务提交的方法,每次插入5w条数据。不执行上面三句话时执行时间大都是2 s,少数是3s。执行了上面三句话后大多数是3s ,少数是2 s。执行查询( id >10000 and id < 20000 ) 之间的数据,两者执行时间都是0.005s ,查询count(*) 获取所有数据条数时,加了三句话0.72~0.73s 比不加所耗的时间0.73s 快了一点点。25w条数据的文件大小为123兆。
  access数据库用的是2003格式,这里不由得要郁闷一下,access其实本身并不支持事务提交,它是通过OleDbTransaction来实现的,它在事务提交中给我的感觉跟一条一条插入毫无区别,唯一的区别就是出错了会回滚事务。所以它插入完25w条数据所消耗的时间是远远无法跟sqlite比较的。反正应用中几乎也用不到大数据量事务提交,只好忍了。但是需要导入数据的话.....嘿嘿
  相同的查询语句,access用了0.047~0.06s,与sqlite相比,差距明显。查询count(*) 获取所有数据条数时,用了0.06~0.07s,比sqlite稍有优势。25w条数据的文件大小为177兆。
  综合来说,我觉得还是sqlite优势比较明显。但是access数据库维护要方便很多。
分享到:
评论

相关推荐

    SQLite数据库 sqlitedll库文件 sqlite驱动JAR包 sqlite工具

    在Java下连接SQLite数据库 一、下载SQLite数据库的JDBC:http://www.zentus.com/sqlitejdbc/ 二、将下载到的包解压后得到jar包放到%JAVA_HOME%\lib下,并且将其添加到ClassPath系统环境变量中。一定要保证在类路径...

    Unity数据库Sqlite.dll和Data.dll

    内涵Mono.Data.Sqlite.dll以及System.Data.dll

    解决linux下出现/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found问题

    解决linux下出现/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found问题,包含libstdc++.so.6.0.23文件和使用说明文档

    sqlite3.exe

    sqlite3.exe工具,官网下载地址:http://www.sqlite.org/download.html

    使用 mingw 编译的 lsqlite3_svn08

    -1. 部分文件列表 EXE or DLL size ------------------------ ... lsqlite3 链接 sqlite 使用的 sqlite3.lib 来源于 M$ 的 lib.exe 应用,参阅 http://hi.baidu.com/opaquefog/blog/item/9b21b6deb324e25dccbf1ab7.html

    ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)示例源码

    支持.Net1.1及以上版本,可用于Oracle、SqlServer、Sybase、DB2、MySQL、Access、SQLite、PostgreSQL、DM(达梦)、PowerDesigner文件、Informix、Firebird、MaxDB、Excel等和OleDb、ODBC连接的数据库并可自定义,详见...

    中标麒麟离线搭建svn教程.rar

    sqlite-autoconf-3190300.tar.gz 下载地址:http://www.sqlite.org apr-1.5.2.tar.gz,apr-util-1.5.4.tar.gz 下载地址:http://archive.apache.org/dist/apr zlib-1.2.11.tar.gz 下载地址:...

    ContentProvider

    import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.provider.SyncStateContract.Helpers; import android....

    sqlite .net驱动程序for VS2005-2013

    sqlite .net驱动程序for VS2005-2013 官方链接 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

    【实测有效,真正解决】VB.NET C# VS sqlite 无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块

    简单整合32位SQLite跟64位SQLite,项目属性设置为anycpu的时候不会再有烦人的编译平台不同的提示,sqlite会自动根据系统的位数,而选择相应的版本。 同时还阔以解决System.DllNotFoundException: 无法加载 DLL...

    fmdb数据库

    iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,开源社区中就出现了一系列将SQLite...

    叶子asp分页类(好用)

    Revision: 0.12.20051114.f Author: Yehe(叶子) Released: 2005-11-14 09:40:13 Descript: ASP分页类,支持access/mssql/mysql/sqlite Contact: QQ:311673 MSN:myehe@msn.com GT:mmyehe@gmail.com WebSite: ...

    SQLite3资料C++

    SQLiteSpy_1.8.5 数据库查看UI程序 :查看SQLIte3 数据库的UI小程序 _SQLite权威指南.pdf SQLite学习手册_中文全本.pdf CppSQLite3U国外牛人的sqlite封装.zip C++封装类使用方法:...

    sqlite3.lib

    3、解压所下载的两个压缩包,复制文件sqlite3.h、sqlite3.c、sqlite3.def、sqlite3ext.h到工程目录下; 这是32位,编好的lib,与32位的sqlite3.dll和sqlite3.h一起配置,就可以连接sqlite数据库

    SQLite(SqliteDev)

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。...

    sqlite3可视化数据管理工具破解版

    sqlite3可视化数据管理工具破解版,可以放心永久使用。

    精品毕业设计 java ssm框架 高效人事管理系统 源码

    数据库(sqlite/mysql/sqlserver等):mysql 功能模块 通知公告; 管理员:密码修改、教师管理、通知公告管理、班级信息管理、注册学生管理、学生成绩管理、报道信息管理; 教师:密码修改、个人信息查看修改、报道信息...

    sqlite3-部分使用整理

    对sqlite3在命令提示符下建立数据库、表,增加删除记录等的的整理说明

Global site tag (gtag.js) - Google Analytics