Sqlite China  
首页 | 各种语言的sqlite编程 | sqlite研究 |sqlite应用实例与杂谈 | sqlite相关下载 | SQlite论坛
当前位置 : 主页>sqlite研究>列表
SQLite数据库与其它一些数据库的性能比较
来源:工友 作者:工友 时间:2007-12-20
SQLite数据库与其它一些数据库的性能比较
这是从一篇繁体blog中的文章:http://blog.joycode.com/fish/archive/2004/08/13/30653.aspx
今天写了一个简单的测试程序,目的为了解自己目前所使用数据库的性能, 并希望能从中調整出更好的結果。
下面是多次测试的結果:
测试环境: Windows2003, .NET Framework 1.1, no AntiVirus, 1GB memory
测试的数据库
: SQLite V3, MySQL Type=InnoDB, SQL Server 2000 Sp3, Access 20003
参数设置:
MySQL (預設*2)
 max_allowed_packet=16M
 key_buffer_size=16M
 table_cache=128
 sort_buffer_size=4M
其余选项均为預設值。
 
数据库的连接字符串:
Private MSSQLConnStr As String = "initial catalog=CodeLib;Connect Timeout=20;data source=(local);integrated security=SSPI;persist security info=False;"
Private MySQLODBCConnStr As String = "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=CodeLib;OPTION=18475;SERVER=localhost;UID=;PASSWORD=;"  
Private MySQLByteFXConnStr As String = "Database=CodeLib;Data Source=localhost;User Id=;Password="
Private OLEDBConnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=1.mdb"
Private SQLiteConnStr As String = "Data Source=;New=True;Version=3"
   
INSERT with Transaction 10000
笔记录:
00.6089(SQLite) < 01.1677(MSSQL) < 02.5346(ByteFx) < 08.9000(Access) < 13.9242(MyODBC) 0~10000
00.5476(SQLite) < 01.2679(MSSQL) < 02.4982(ByteFx) < 08.6672(Access) < 13.5140(MyODBC) 10000~20000
00.5245(SQLite) < 01.1508(MSSQL) < 02.5150(ByteFx) < 08.7101(Access) < 13.6411(MyODBC) 20000~30000

INSERT with Transaction 50000笔记录:
03.4739(SQLite) < 09.4173(MSSQL) < 13.6408(ByteFx) < 44.3165(Access) < 71.6529(MyODBC) 50000
INSERT without Transaction 300笔记录:
00.0908(MSSQL) < 00.3520(Access) < 10.3717(MyODBC) < 11.5118(ByteFx) < 25.8230(SQLite) 30000~30300
00.0907(MSSQL) < 00.3686(Access) < 08.7148(ByteFx) < 11.3625(MyODBC) < 25.1898(SQLite) 30300~30600
00.1027(MSSQL) < 00.3595(Access) < 08.4664(ByteFx) < 08.7934(MyODBC) < 25.3364(SQLite) 30600~31200
 
SELECT 31200笔记录:
00.4161(SQLite) < 00.8362(MSSQL) < 00.8688(Access) < 02.3565(MyODBC) < 02.4857(ByteFx)
00.3519(SQLite) < 00.5707(Access) < 00.7055(MSSQL) < 02.5555(MyODBC) < 02.6173(ByteFx)
00.3472(SQLite) < 00.6037(MSSQL) < 00.6707(Access) < 02.5439(ByteFx) < 02.6328(MyODBC)

SELECT 50000笔记录:
00.6129(SQLite) < 01.0132(MSSQL) < 01.2942(Access) < 04.0064(ByteFx) < 04.4904(MyODBC)
00.6741(SQLite) < 00.9719(MSSQL) < 01.2956(Access) < 03.7336(ByteFx) < 04.6592(MyODBC)
 
DELETE 31200笔记录:
00.0091(Access) < 00.0247(ByteFx) < 00.1960(SQLite) < 00.6901(MSSQL) < 01.2297(MyODBC)

DELETE 50000笔记录:
00.0092(Access) < 00.0301(ByteFx) < 00.3305(SQLite) < 01.9281(MyODBC) < 03.0269(MSSQL)
 
从上面结果看出:
SQLite3 在不执行行事务处理的情況下不是很理想, SELECT速度相当快。
MSSQL/Access无论是否执行事务处理的性能都相當不錯。
MySQLByteFxMyODBCInsert/Delete的速度上差异略为明显。
以上数据仅供参考, 如果您对结果有更好的建议也请让我知道。
 
sqlite在不开事务的情况下就是一种悲剧,因为它的多访问支持是建立在对文件的独占和共享基础上的。
 
SQLite与其它数据库的性能比较可参看官方网:http://www.sqlite.org/speed.html
(阅读次数:
上一篇:SQLite数据库安全 下一篇:sqlite3数据库的性能问题报告
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
§最新评论
热点文章
·SQLite数据库的体系结构
·SQLite与其他数据库的速度
·SQL 语言参考资料
·SQLite语法备忘录
·sqlite 的相关调查1
·嵌入式数据库SQLite的一份
·SQLite在嵌入式Web服务器
·点评主流开源数据库的技术
·基于ARM-Linux的SQLite嵌
·SQLite与其他数据库的速度
·SQLite数据库编程--创建数
·SQL 语法手册
·SQLite Mode 数据库交互的
·SQLITE3 使用总结(3)
·XXTEA加密算法为SQLite 3.
·SQLite 第三版总览(简介)
·SQLite 第三版中的数据类
·用sqlite 执行标准 sql 语
·System.Data.Sqlite 上手
·SQLite编译安装步骤
相关文章
·SQLite Mode 数据库交互的
·SQL 语言参考资料
·SQLite在嵌入式Web服务器
·SQL 语法手册
·System.Data.Sqlite 上手
·SQLite数据库编程--创建数
·SQLite数据库编程--数据库
·SQLite在TorqueScript中的
·关于sqlite_exec回调函数
·用sqlite 执行标准 sql 语

版权Power by DedeCms   后台登陆
Copyright @ 2007