每天4亿行SQLite订单大数据测试(源码)

本文介绍了对SQLite进行大数据测试的情况,包括单表4亿订单的处理,展示了SQLite在关闭同步、WAL模式和加大缓存后的性能提升。测试结果显示,SQLite在适当配置下,性能表现良好,尤其适合高并发读取。同时,文章提供了大数据源码和4亿订单数据的下载链接。

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

SQLite作为嵌入式数据库的翘楚,广受欢迎!
新生命团队自2010年以来,投入大量精力对SQLite进行学习研究,成功应用于各系统非致命数据场合。

SQLite极致性能

  • 关闭同步,Synchronous=Off,提升性能。添删改操作时不必同步等待写入磁盘,操作系统会延迟若干毫秒批量写入
  • 设置WAL模式,Journal Mode=WAL,减少锁定。写入向前日志模式,避免多线程访问时锁定数据库,写入时不必使用排它锁影响其它线程读取,而是把事务操作写入到WAL文件中,延迟合并
  • 加大缓存,Cache Size=5000,提升性能。操作系统通过文件映射MapFile把整个数据库文件映射进入内存,实际查询时会把用到数据所在附近页预先加载进入缓存,极大提升查询性能
  • 插入速度 5000~16000tps,依赖CPU,HDD/SSD差别不大,主要受限于SQLite.Data.dll的Prepare
  • 查询速度 非首次查询,缓存命中以后,索引查询基本上都是毫秒级。数据库较大则相应加大缓存,速度不变。
  • 查记录数 单表数据超过一千万行以后,尽量不要使用Select Count,否则可能需要十几秒到半分钟的样子才能返回。NewLife.XCode封装了'Meta.Count'

当然,SQLite不适合多线程高并发写入,多线程高并发读取倒是非常不错。
因为数据库就在进程内,高并发读取一般比其它RDS要快一大截。
总的来说,SQLite数据库甭管多少数据多大库文件,只要配置得当,内存管够,性能不是太大问题!

SQLite大数据

为了验证SQLite的性能巅峰,我们来做一个大数据测试。
模拟每天4亿票销售订单,分表分库,每天一个数据库文件,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值