到底SQLite有多强?在我的2台机器上的压力测试
2005-03-26 12:04 灵感之源 阅读(15950) 评论(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