阿里云每天4亿行SQLite订单大数据测试(最后附源码)
2018-01-17 20:53
429 查看
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亿票销售订单,分表分库,每天一个数据库文件,有订单号、部门节点、时间等。1, Test项目生成4亿行订单数据,主键自增ID,订单号建立索引,文件大小26.5G
2, Web项目,魔方+XCode,首次查询较慢,约427毫秒,需要预热
不同机器的首次查询时间偏差比较大,最大可能达到几秒钟
本机第一次启动该项目时,魔方需要从公网下载SQLite驱动文件以及样式资源文件
3, 第二页,99毫秒,操作系统文件映射缓存生效
4, 第20000页,147毫秒,系统缓存依然生效
5, 第200000页,32021毫秒,距离太远,文件系统缓存没有命中
6, 第200001页,867毫秒,缓存命中
7, 查询一个中间订单号000199999980,20毫秒,索引命中
显然,只要有索引,多大数据都不怕
8, 本地内存占用150M。虽然整个数据库26.5G,但操作系统只会加载需要部分
对于重要程度不是特别高的场合,可以大量使用SQLite库保存历史数据,平时用不到的时候只占硬盘,不占内存
9, 记录数Select Count,362058毫秒,约6分钟,超级慢
SQLite在云端
租用阿里云最低配置ECS,单核1G,1M带宽,每年300块,每天九毛钱部署BigData项目到ECS,访问正常
针对上面的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:694549689,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
源码及数据库
大数据源码 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我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
相关文章推荐
- 每天4亿行SQLite订单大数据测试(源码)
- 每天4亿行SQLite订单大数据测试(源码)
- 每天4亿行SQLite订单大数据测试(源码)
- SQLite单表4亿订单,大数据测试
- CYQ.Data 轻量数据层之路 最后开源版本V1.5.5发布[V1.4源码对外下载] (二十三)
- CYQ.Data 轻量数据层之路 最后开源版本V1.5.5发布[V1.4源码对外下载] (二十三)
- Python向Sqlite批量插入数据,测试硬盘性能
- 两种方法实现STM32F103向串口一直发送数据(程序源码,已测试)
- shopnc b2b2c 新版多用户商城系统源码基于33hao,全开源可二次开发,带测试数据
- 计算机视觉的一些测试数据集和源码站点
- asp生成和导出excel和word数据源码和代码,简单好用(已经测试可以用)
- 修改Apache Benchmark源码实现请求数据随机的压力测试
- 往sqlite中写入图片二进制数据及读取源码
- 计算机视觉的测试数据及源码站点
- 计算机视觉的一些测试数据集和源码站点
- 计算机视觉的一些测试数据集和源码站点
- asp生成和导出excel和word数据源码和代码,简单好用(已经测试可以用)
- 性能测试 PTS 铂金版来袭!阿里云发布T级数据压测的终极秘笈
- IOS sqlite数据插入源码
- 每天自动备份网站数据,发现问题一键恢复 ——阿里云虚拟主机推出网站数据自动备份功能