51Testing软件测试论坛

标题: 4亿行SQLite订单大数据如何使用大数据进行测试? [打印本页]

作者: 草帽路飞UU    时间: 2022-9-27 17:04
标题: 4亿行SQLite订单大数据如何使用大数据进行测试?
每天4亿行SQLite订单大数据测试(源码)

SQLite单表4亿订单,大数据测试


SQLite作为嵌入式数据库的翘楚,广受欢迎!

新生命团队自2010年以来,投入大量精力对
SQLite进行学习研究,成功应用于各系统非致命数据场合。


SQLite极致性能







当然,SQLite不适合多线程高并发写入,多线程高并发读取倒是非常不错。

因为数据库就在进程内,高并发读取一般比其它RDS要快一大截。

总的来说,SQLite数据库甭管多少数据多大库文件,只要配置得当,内存管够,性能不是太大问题!


SQLite大数据为了验证SQLite的性能巅峰,我们来做一个大数据测试。


模拟每天4亿票销售订单,分表分库,每天一个数据库文件,有订单号、部门节点、时间等。


1, Test项目生成4亿行订单数据,主键自增ID,订单号建立索引,文件大小26.5G


[attach]143369[/attach]

2, Web项目,魔方+XCode,首次查询较慢,约427毫秒,需要预热


不同机器的首次查询时间偏差比较大,最大可能达到几秒钟


本机第一次启动该项目时,魔方需要从公网下载SQLite驱动文件以及样式资源文件



[attach]143370[/attach]

3, 第二页,99毫秒,操作系统文件映射缓存生效


[attach]143371[/attach]

4, 第20000页,147毫秒,系统缓存依然生效


[attach]143372[/attach]

5, 第200000页,32021毫秒,距离太远,文件系统缓存没有命中


[attach]143373[/attach]

6, 第200001页,867毫秒,缓存命中


[attach]143374[/attach]

7, 查询一个中间订单号000199999980,20毫秒,索引命中


显然,只要有索引,多大数据都不怕



[attach]143375[/attach]

8, 本地内存占用150M。虽然整个数据库26.5G,但操作系统只会加载需要部分


对于重要程度不是特别高的场合,可以大量使用SQLite库保存历史数据,平时用不到的时候只占硬盘,不占内存



[attach]143376[/attach]

9, 记录数Select Count,362058毫秒,约6分钟,超级慢


[attach]143377[/attach]

SQLite在云端


http://bigdata.newlifex.com/Admin admin/admin



源码及数据库


大数据源码 http://git.newlifex.com/Stone/BigData

大数据镜像 https://github.com/nnhy/BigData

4亿订单数据 http://pan.baidu.com/s/1skZJ2ih

2亿订单数据 http://pan.baidu.com/s/1bo9NFFx

数据库下载后,解压缩得到Data.db,拷贝到Web并排的Data里面,Data里面还有一个Membership.db

















欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2