包阅导读总结
1. `SQLite、数据库、嵌入式、移动应用、性能`
2. 总结:本文主要探讨了 SQLite 数据库,指出它并非小众,而是装机量最多的数据库。介绍了其起源、特点、支持语言,以及在移动应用、嵌入式系统、桌面应用、数据分析处理、网站加速等方面的广泛使用场景。
3.
– SQLite 简介
– 由 D. Richard Hipp 开发,用 C 语言实现
– 轻量级嵌入式关系型数据库管理系统
– 使用场景
– 移动应用:Android 默认集成,iOS 虽有自身方案但很多开发者仍选 SQLite
– 嵌入式系统:轻量高性能,在众多设备中广泛使用
– 桌面应用:适合纯本地无需联网的应用
– 数据分析和处理:可处理小规模数据集
– 网站加速:如 Notion 编译到 WebAssembly 提升性能
– 其他
– 支持 C、C++、Java、Python、Swift 等语言
– 手机上可能有多个应用包含 SQLite
思维导图:
文章地址:https://juejin.cn/post/7396563478012051495
文章来源:juejin.cn
作者:古时的风筝
发布时间:2024/7/29 3:35
语言:中文
总字数:1683字
预计阅读时间:7分钟
评分:87分
标签:SQLite,数据库,嵌入式系统,移动应用,桌面应用
以下为原文内容
本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com
🍄 大家好,我是风筝
🌍 个人博客:【古时的风筝】。
本文目的为个人学习记录及知识分享。如果有什么不正确、不严谨的地方请及时指正,不胜感激。
每一个赞都是我前进的动力。
公众号:「古时的风筝」
前几天在一个群里看到一位同学说:“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 ,减少不必要的网络交互,对于网站的速度和性能会有很大提升。
还可以看看风筝往期文章
我做了一款网页 AI 效率插件
有人问我数据库ER图为什么这么好看?
「差生文具多系列」最好看的编程字体
我患上了空指针后遗症
一千个微服务之死
搭建静态网站竟然有这么多方案,而且还如此简单
被人说 Lambda 代码像屎山,那是没用下面这三个方法