dbaplus社群 2024年09月10日
SQLite这么小众的数据库,到底是什么人在用?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

SQLite是世界上装机量最多的数据库,它轻量、快速、独立且功能齐全,被广泛应用于多种场景。

🎈SQLite是轻量级嵌入式关系型数据库管理系统,由D.RichardHipp在2000年开发,用C语言编写,最初为嵌入式系统设计,可直接嵌入应用程序中。

💻SQLite在移动应用中被广泛使用,Android默认集成,iOS中虽有官方方案,但很多开发者仍选择SQLite作为本地存储方案,如微信、美团等APP都可能包含。

🌐SQLite在嵌入式系统中因其轻量和高性能的特点而被广泛应用,包括嵌入式Linux设备、物联网设备、路由器、汽车电子系统等。

💻SQLite也适用于桌面应用,尤其是纯本地应用,所有配置和数据存于本地,这种场景适合SQLite这种轻量级数据库。

🚀SQLite还可用于网站加速,如Notion将其编译到WebAssembly,存更多数据到本地,减少网络交互,提升网站性能。

风筝 2024-09-10 07:15 广东

官方统计,目前正在使用的 SQLite 数据库超过 1 万亿个。


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


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



我最早听说 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。


使用场景有哪些


移动应用


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


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


嵌入式系统


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



桌面应用


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


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


数据分析和处理


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


网站加速


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


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


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


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



作者丨风筝

来源丨公众号: 古时的风筝(ID:gushidefengzheng)

dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn




活动推荐


为了和大家一起探索AI相关技术在大数据、数据资产管理、数据库、运维等领域的最佳落地方式,挖掘由此激发的软件发展和技术进步,第九届DAMS中国数据智能管理峰会将于2024年11月29日在上海举办,携手一众产学研界技术领跑单位,带来新思路、重实践、可落地的全日干货盛宴。早鸟优惠,码上报名↓



跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

SQLite 数据库 移动应用 嵌入式系统 网站加速
相关文章