昨天上一章节我写到了这篇【作为架构师,下一次你应该考虑的10个数据库】
(上篇文章链接:https://juejin.cn/post/6846687602020450318)
有个掘友问了我一个问题,今天就来说明一下这个问题的答案,就当普及新知识
问题:
SQLite 文件格式稳定,跨平台且向后兼容,开发人员保证至少在2050年之前保持这种格式。SQLite数据库文件通常用作在系统之间传输丰富内容的容器并作为数据的长期存档格式 。
特点
具有高级功能的全功能SQL实现,例如部分索引, 表达式索引,JSON, 公用表表达式和窗口函数。(省略的功能)
完整的数据库存储在 单个跨平台磁盘文件中。非常适合用作应用程序文件格式。
支持千兆字节大小的数据库以及千兆字节大小的字符串和Blob。(请参阅limits.html。)
代码占用量少:完全配置的内存不到600KiB,而省略了可选功能则更少。
快速:在某些情况下,SQLite 比直接文件系统I / O更快
用ANSI-C编写。 包括TCL绑定。数十种其他语言的绑定分别可用。
跨平台:开箱即用地支持Android,* BSD,iOS,Linux,Mac,Solaris,VxWorks和Windows(Win32,WinCE,WinRT)。易于移植到其他系统。
带有一个独立的命令行界面 (CLI)客户端,可用于管理SQLite数据库。
读写测试
在每种情况下,都将调页器缓存大小调整为将缓存内存量保持在2MB左右。例如,一个2000页的高速缓存用于1024个字节的页面,而31页的高速缓存用于65536个字节的页面。BLOB值以随机顺序读取。
数据库页面大小为8192或16384可为大型BLOB I / O提供最佳性能。
对于小于100KB的BLOB,将BLOB直接存储在数据库文件中时,读取速度更快。对于大于100KB的BLOB,从单独的文件读取速度更快。
总结:
所以说白了,性能的优势完全来自于缺少的功能。
当然,它也有很大的适用范围
感谢那些支持小编的小伙伴,有想法的可以进小编新建的一个 java学习交流群:925895158
一起探讨一些好奇的问题,当然也可以 微我:xuanwo013 一起交流学习一下,共同进步,