|
楼主 |
发表于 2019-1-4 19:31
|
显示全部楼层
查询了一下,说SQLite在百万行以下没有问题,但是超过百万行会影响性能。
别人提供的一个测试数据:
A、系统环境
OS:Windows XP Professional Server Pack 3
CPU:AMD K8 3200+(2.2G)
RAM:3G
HD:Seagate 160G IDE 7200RPM
B、代码环境
NET2.0、Access2003、Firebird 2.1.1.17910、SQLite 3.6.3
Firebird Data Provider(FirebirdSql.Data.FirebirdClient.dll, 2.1.0.0)
SQLite Data Provider(System.Data.SQLite, 1.0.60.0)
下是测试数据,仅予参考
测3次平均,无测10W+,因Firebird出现OutMemoryException
无测修改操作,因无需求
依序 1、10、100、1000、10000 条数据,单位 ms
新增操作
1.无预编, 无事务
Access:41、54、195、1610、16187
Firebird:9、19、189、1929、22125
SQLite:3、27、867、5002、53603
2.事务控制
Access:39、50、162、1278、12366
Firebird:11、30、60、587、5904
SQLite:4、4、10、73、739
3.预编译优化
Access:43、50、128、908、9100
Firebird:2、13、128、1322、15954
SQLite:4、26、465、4626、54608
4.预编译+事务控制
Access:42、46、102、676、6355
Firebird:3、4、22、211、2087
SQLite:3、4、8、41、378
查询比较
Access:39、42、40、51、181
Firebird:2、3、15、131、1294
SQLite:1、1、3、16、165
讨论:
Firebird性能不如预期、SQLite性能很好
Access事务支持不强,但预编启性能很好
SQLite缺省已预编,加上事务控制性能更好
Access查询加排序,数据10W+时性能极差(I/O问题)
单测Firebird 10W+新增操作,性能极差(I/O问题)
10W+数据操作性能多卡在I/O,不过SQLite因规格单纯,所以性能会较强
|
|