大家有用 Sqlite 的吗,都是什么场景下要用这个,能说一两点非要用它的理由最好啦

2022-03-03 09:54:06 +08:00
 papaer
8032 次点击
所在节点    SQLite
55 条回复
CoCoMcRee
2022-03-03 11:12:35 +08:00
app 内置数据库, 大量数据 app 本地存储, 就是用的 sqlite
cmdOptionKana
2022-03-03 11:36:52 +08:00
sqlite 优点多:稳定可靠(真的身经百战,极难撞到 bug 了)、运行效率高占用资源小、备份容易、支持广泛(几乎一切语言都可以操作同一个数据库文件)、关系型数据库功能比 kv 多,便于编程。

虽然 kv 数据库也具有 sqlite 的多数优点,但 kv 通常用起来是麻烦一点,很多操作需要额外编程处理。
libook
2022-03-03 11:41:22 +08:00
见到最多的场景就是客户端上需要比较强的数据查询能力,跑个常规数据库太重了,SQLite 比较轻量,容易打包到客户端安装包里,跟常规关系型数据库的使用方式差别较小。

还有一个场景是做原型产品,很多 ORM 可以支持多种数据库,避免折腾常规数据库服务可以先挂个 SQLite ,后面产品化的时候迁移到正式数据库成本也不会很高。
littlewing
2022-03-03 11:49:04 +08:00
客户端 APP 本地保存一些数据
Akitora
2022-03-03 11:59:08 +08:00
@aegon466 cgo 开启时默认不支持交叉编译,可以试试用 wsl 编译
imn1
2022-03-03 12:02:59 +08:00
“非要”这个词,估计只有“无网+便携”场景可以符合
如果只是问选择理由
0. 便携场景
1. 我写了几个单机程序,基本都是用 sqlite ,因为没什么并发,没必要装服务端数据库
2. 单用户不定设备同步,只需要同步一个数据库文件就可以了,因为单用户甚少同时操作两个设备。同时指的是秒级或更高频手动操作,不是指软件自动运算写数据库


还有一个场景,但比较少见,就是目的是数据共享、分发给不定人群,至于他怎么用这些数据,并非主要目的,github 上一些项目就是这样,分享的不是代码,而是数据
devld
2022-03-03 12:05:34 +08:00
自己的小项目,想要一键无痛启动。
GoLand
2022-03-03 12:28:37 +08:00
单元测试用 sqlite 来 mock MySQL
ackfin01
2022-03-03 12:39:31 +08:00
最主要就是方便啊 而且性能也满足
dany813
2022-03-03 12:42:15 +08:00
小巧,方便
leavic
2022-03-03 13:26:33 +08:00
不需要服务器
kingfalse
2022-03-03 13:37:27 +08:00
各种工控客户端机器,手机 app,等
james2013
2022-03-03 13:48:31 +08:00
android 手机上就这个数据库最方便好用
smallpython
2022-03-03 13:49:56 +08:00
sqlite 这种文件型数据库有对应的 nosql 吗
37Y37
2022-03-03 13:50:55 +08:00
我的博客数据库就用的 sqlite ,小巧方便,不用安装
bthulu
2022-03-03 14:16:15 +08:00
典型案例: 微信客户端
star7th
2022-03-03 14:39:59 +08:00
我的开源软件 showdoc:

https://github.com/star7th/showdoc

就使用 sqlite .

showdoc 使用 Sqlite 的理由如下:

PHP 环境默认支持 Sqlite ,所以只需要安装好 PHP 环境,即可使用 showdoc ,无须再安装 mysql 。这对于不懂 mysql 的开发者(如 App 开发者)来说会更容易一些。同时方便官方维护 showdoc ,不用维护和测试两个数据库版本

sqlite 的性能并不差,对于总项目数在一万以内的情况,基本不用考虑性能问题。所以完全足够普通公司或者团队的使用。关于对 sqlite 性能的质疑,可以参考这位不知名网友的文章 https://www.cnblogs.com/derekhan/p/10897421.html

sqlite 数据库文件放在 /Sqlite 目录下,迁移和备份都十分简单,直接复制 /转移该目录即可
MoeWang
2022-03-03 14:47:46 +08:00
博客,数据量小,单独开个数据库性能过剩,索性 sqlite ,缓存好了速度很快。轻量也好迁移。
MarquesMa
2022-03-03 14:59:45 +08:00
客户端里内嵌很常见,比如手机,桌面应用等等

另外如果在服务器的话,存文件很不错

还有就是小应用单台机器起步的时候也可以简单用下
Buges
2022-03-03 15:06:56 +08:00
@aegon466 交叉编译可以利用 zig ( zig 受 go 启发,能像 go 一样简单的交叉编译 c 代码)
https://dev.to/kristoff/zig-makes-go-cross-compilation-just-work-29ho

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/837599

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX