代码改变世界

到底SQLite有多强?在我的2台机器上的压力测试

2005-03-26 12:04  灵感之源  阅读(15948)  评论(18编辑  收藏  举报

作为最轻量级、强大的嵌入式数据库引擎,SQLite除了拥有以下介绍的特性外:

开源数据库系统之SQLite3.2.0、FireBird2.0 Alpha-1等
SQLite最新稳定版本3.1.3发布
开源有感系列 之开源数据库有感[新内容添加版本]
开源轻量级嵌入式数据库引擎SQLite 3.1.0版大量新特性!
更新:超轻量级数据库引擎SQLite3.04版和SQLiteDB 1.0.2版
ADO.NET Data Provider for SQLite 0.19版同时支持SQLite2.x和3.x!
SQLite系列免费/开源数据库组件/应用
SQLite3.0 beta & ADO.NET Data Provider for SQLite 0.18发布了!
最轻量级但强大的ADO.NET Data Provider for SQLite 0.17版也C#了!
SQLite3.0 Alpha发布了!!!
SQLite准备出3.0了!

大家或许会对其真实速度比较感兴趣:我使用其ADO.NET驱动来进行压力测试,看看其真实表现。

在公司的PIV 3.0, 1G内存, Win2003 Server+vs.net2003,并包含Unicode字符(中文),例子是该驱动的官方测试,我仅仅修改了第一个字段的内容和记录数。

说明:下面的每个“+”表示前后为字段,数字为字段的长度,

(23+i+i*3.3+i*4.4 字节) * 1000万 
Inserting version 3... 47009 inserts/sec 
Reading version 3... 262595 reads/sec 
 
(23+i+i*3.3+i*4.4 字节) * 1亿
Inserting version 3... 48042 inserts/sec 
Reading version 3... 102899 reads/sec 
数据库为 6.7G
 
(1万+i+i*3.3+i*4.4 字节) * 10万 
Inserting version 3... 468 inserts/sec 
Reading version 3... 654 reads/sec 
 
(1万+i+i*3.3+i*4.4 字节) * 50万 
Inserting version 3... 334 inserts/sec 
Reading version 3... 641 reads/sec 
数据库为7.5G 

当Insert的时候,50% cpu,当select的时候,10-20% cpu。



在家的C4 1.7+512M内存 + IDE 100 7200RPM

20字节 * 1百万记录
Inserting version 3... 6943 inserts/sec
Reading version 3... 78599 reads/sec

64字节 * 1百万记录
Inserting version 3... 4808 inserts/sec
Reading version 3... 35225 reads/sec

64字节 * 1千万记录
Inserting version 3... 5937 inserts/sec
Reading version 3... 6818 reads/sec

结论,速度有点不稳定,因为我还开了几个大型软件在跑,而且我没有反复测试,只测试了一遍,公平点来说,.NET对超大量循环的效率表现真的有点不让人满意,但SQLite的表现基本是不错的,一个才200K的关系型数据库引擎不能过多强求。


SQLite
一个很优秀的特性就是内存模式数据库,整个数据操作都在内存中运行,这样的速度将会是以上操作的50、100甚至更多倍以上!   

附:
VB.NET测试:DataGrid_DataSet_DataTable.rar
图像化QA:sqlite3Explorer.zip