SQLite这么小众的数据库,到底是什么人在用?

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 

5d37a31f75dbcf78e96e0587f55cd69c.gif

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud

  • 视频教程:https://doc.iocoder.cn

【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

来源:古时的风筝


前几天在一个群里看到一位同学说:“SQLite这么小众的数据库,到底是什么人在用啊?”

首先要说的是 SQLite 可不是小众的数据库,相反,SQLite 是世界上装机量最多的数据库,远超 MySQL,只不过比较低调而已。低调到我想在官网上找一个好看的用来当插图的图片都找不到,只能截一张官网首页来撑一撑,看起来十分朴素。

2ef38bd93bd7b74d2637d609c353f556.png

我最早听说 SQLite 是刚毕业工作的时候,我们部门做微软内容管理产品的二次开发,其中有一个客户端即时沟通工具叫做 Lync,搭配上 LDAP 的组织架构,其功能就和现在的企业微信差不多。

Lync 支持二次扩展,结合我们的产品需要在其中做一些功能拓展,负责这项工作的是一位厉害的 C++ 大佬。有一次我和他聊起来,我说客户端要记住用户自己的配置和数据,是不是要在目录下放一个配置文件啊,那数据量大了会不会很慢。他说,用配置文件也行,但是咱这个不用配置文件,用 SQLite。

也是孤陋寡闻,那是我第一次听说 SQLite,才知道这也是个数据库,只不过多用在客户端而不是服务器上。

SQLite

SQLite是一个轻量级的嵌入式关系型数据库管理系统。它由D. Richard Hipp在2000年开发,它实现了一个小型、快速、独立、高可靠性、功能齐全的SQL数据库引擎。

SQLite 用C语言开发,最开始的设计目标是嵌入式系统,它可以在不需要单独的服务器进程的情况下,直接嵌入到应用程序中。后来正好赶上智能手机等智能设备普及,正好契合 SQLite 的使用场景,于是大量的智能设备都在使用 SQLite 。这么说吧,你用的手机上,一定有 SQLite 存在。

像 MySQL 一样,SQLite 也是开源且免费的,据官方统计,目前正在使用的 SQLite 数据库超过 1 万亿个。

SQLite 也可以通过配置像MySQL 那样装在服务器上,通过网络连接访问,但是,完全没有必要。

SQLite 支持C、C++、Java、Python、Swift等大多数语言直接使用。

为什么说你的手机上肯定有 SQLite 呢?因为 SQLite 会随着应用程序代码一起打包,所以这样说来,你的手机上还不止一个 SQLite ,可能有很多,例如微信有一个、美团有一个、网易云音乐等等 APP ,都可能包含自己的 SQLite。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

使用场景有哪些

移动应用

前面也一直在说手机上的SQLite。Android就默认集成了SQLite作为应用数据存储的标准解决方案。

Apple 的 IOS 其实提供了自己的数据存储方案,比如 CoreData,但是很多开发者都觉得官方提供的方案实在太难用,所以,有很多应用开发者还是选择 SQLite 作为本地存储方案使用。

嵌入式系统

SQLite 本来就是为了嵌入式系统设计的,所以它的特点就是轻量和高性能嘛,这也使得他在嵌入式系统中被广泛使用。包括嵌入式Linux设备、物联网(IoT)设备、路由器,以及汽车电子系统等等。

4b4a912d121cf64ce7b4471930aa87de.png

桌面应用

许多桌面应用程序使用SQLite作为其内部数据库,我第一次听说 SQLite 就是那位同事大佬为了拓展桌面客户端。

尤其是一些纯的本地应用,不需要联网的,所有的配置和数据都会存在本地,这种场景正好适合SQLite 这种轻量级数据库。

数据分析和处理

SQLite还可以用于处理和分析小规模的数据集。例如,数据科学家可以使用SQLite来存储和操作中小型数据集,以进行数据清理、转换和分析。

网站加速

最近看了一篇文章,介绍 Notion 技术团队如何使用WASM SQLite在浏览器中加速Notion 的性能。

WebAssembly (WASM) 是一种低级字节码格式,能够在现代浏览器中高效运行。它被设计为一个可移植的目标,可以被多种编程语言编译成它。它有接近原生的性能,同时可以安全地运行在浏览器的沙箱环境中。

所以为了追求更好的性能,有些像 Notion 这样的网站直接将 SQLite 编译到 WebAssembly,相当于在网站中加入了 SQLite。

这样一来,更多的数据存到本地 SQLite ,减少不必要的网络交互,对于网站的速度和性能会有很大提升。


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

8bf22ec4aa8067c42314f2b852fb81dd.png

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

84f06e690a20bb57a2892c4bff7f9484.png

e3ca11bdb01eadd4f1f1d9ba6526e619.png805ddc1f65243e6fe52129cf8a7ded5c.png74f11d0fd0c9833a7718f0ff635501fc.pnge2f09b155a312fc3151e0074a8dbfd74.png

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值