1
LANB0 117 天前 ![]() 嵌入式设备,内存、CPU 和 flash 性能都有限,跑不了大型数据库。主要以 C/C++开发,sqlite 有良好的 C 接口提供。
|
![]() |
2
adoal 117 天前
不用部署,就一个本机数据文件。
|
3
roundgis 117 天前 via Android
|
4
watcher 117 天前
server side
|
![]() |
5
lisongeee 117 天前 ![]() android 默认支持 Sqlite ,所以用 Sqlite ,另外本地应用存储数据量大的时候也适合 Sqlite ,用 json 或者 xml 这类只能整存整取,数据量大的时候会 io 阻塞比较严重
|
![]() |
6
iyear 117 天前 via Android
单文件应用工具用着真的爽,应用本身性质也决定了不用特别强的数据库。sqlite+go 真的爽
|
![]() |
7
BingoXuan 117 天前
你需要一个数据库的功能,但又不想或没条件启动独立数据库进程,那就选 sqlite 。python 有 sqlitedict 这个库,能把字典持久化。连 orm 都省了
|
![]() |
8
felixcode 117 天前 via Android ![]() 与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程,可以按应用程序需求进行静态或动态连接。SQLite 直接读取和写入普通磁盘文件,具有多个表,索引,触发器和视图的完整 SQL 数据库包含在单个磁盘文件中。
|
![]() |
9
wangtian2020 117 天前
electron 要存订单信息、作业信息,几百条数据。数据大到不适合 localstorage ,但又不至于上大数据库,数据库要在程序内置
|
![]() |
10
youthfire 117 天前 via iPhone
本地 Python+sqlite ,不连接外网,速度快
|
![]() |
11
RickyC 117 天前
数据库免安装,免部署。比如 showdoc 。
|
![]() |
12
icyalala 117 天前
手机里到处都是 sqlite ,比如 iOS/Android 的短信、通信录、邮件等数据都是 sqlite 存储的,各个 App 比如微信聊天记录、复杂配置也都是 sqlite ,无处不在。
对于需要存储关系模型、需要查询、又没有太高的安全性和事务处理需求的地方,都适合用 sqlite ,移动端尤为适合。 |
![]() |
13
dooonabe 117 天前 via Android
说个反例:现在做的仿知乎 web 项目,cto 让给每个用户的三四个用户相关表创建独立的 db ,曰提高并发,降低死锁概率
|
![]() |
14
wonderfulcxm 117 天前 via iPhone
买了个万网的那啥共享空间挂域名,想做点东西,一看,mysql 只有 50m ,那只能用 sqlite 了
|
![]() |
15
Vegetable 117 天前
手机里多的是吧。你可以理解为,客户端需要使用数据库的时候,文件型数据库几乎是唯一选择。
|
![]() |
17
izzy27 117 天前
轻量呗,一些小项目用 sqlite 足够了
|
18
zjj19950716 117 天前
@aegon466 要 cgo ,你可以用 pure go 版本的 sqlite 库,就是性能差点
|
![]() |
19
Nich0la5 117 天前
主要是本地应用 内置到应用包不用额外部署,单线程下性能不错,没有用户权限体系。反正你当个更高级的配置文件用就好
ps 高并发下不建议用,之前我们的 gitea 后端是个 sqlite 天天卡住,换 mysql 就没事了 |
20
wangjiang 117 天前
@wangtian2020 #9 为啥不用 IndexDB
|
![]() |
21
CoCoMcRee 117 天前
app 内置数据库, 大量数据 app 本地存储, 就是用的 sqlite
|
![]() |
22
cmdOptionKana 117 天前
sqlite 优点多:稳定可靠(真的身经百战,极难撞到 bug 了)、运行效率高占用资源小、备份容易、支持广泛(几乎一切语言都可以操作同一个数据库文件)、关系型数据库功能比 kv 多,便于编程。
虽然 kv 数据库也具有 sqlite 的多数优点,但 kv 通常用起来是麻烦一点,很多操作需要额外编程处理。 |
![]() |
23
libook 117 天前
见到最多的场景就是客户端上需要比较强的数据查询能力,跑个常规数据库太重了,SQLite 比较轻量,容易打包到客户端安装包里,跟常规关系型数据库的使用方式差别较小。
还有一个场景是做原型产品,很多 ORM 可以支持多种数据库,避免折腾常规数据库服务可以先挂个 SQLite ,后面产品化的时候迁移到正式数据库成本也不会很高。 |
24
littlewing 117 天前
客户端 APP 本地保存一些数据
|
![]() |
26
imn1 117 天前
“非要”这个词,估计只有“无网+便携”场景可以符合
如果只是问选择理由 0. 便携场景 1. 我写了几个单机程序,基本都是用 sqlite ,因为没什么并发,没必要装服务端数据库 2. 单用户不定设备同步,只需要同步一个数据库文件就可以了,因为单用户甚少同时操作两个设备。同时指的是秒级或更高频手动操作,不是指软件自动运算写数据库 还有一个场景,但比较少见,就是目的是数据共享、分发给不定人群,至于他怎么用这些数据,并非主要目的,github 上一些项目就是这样,分享的不是代码,而是数据 |
![]() |
27
devld 117 天前
自己的小项目,想要一键无痛启动。
|
![]() |
28
GoLand 117 天前 via iPhone
单元测试用 sqlite 来 mock MySQL
|
29
ackfin01 117 天前
最主要就是方便啊 而且性能也满足
|
![]() |
30
dany813 117 天前
小巧,方便
|
![]() |
31
leavic 117 天前
不需要服务器
|
![]() |
32
kingfalse 117 天前
各种工控客户端机器,手机 app,等
|
![]() |
33
james2013 117 天前
android 手机上就这个数据库最方便好用
|
![]() |
34
smallpython 117 天前
sqlite 这种文件型数据库有对应的 nosql 吗
|
35
37Y37 117 天前 via Android
我的博客数据库就用的 sqlite ,小巧方便,不用安装
|
36
bthulu 117 天前
典型案例: 微信客户端
|
37
star7th 117 天前
我的开源软件 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 目录下,迁移和备份都十分简单,直接复制 /转移该目录即可 |
38
MoeWang 117 天前 via Android
博客,数据量小,单独开个数据库性能过剩,索性 sqlite ,缓存好了速度很快。轻量也好迁移。
|
39
MarquesMa 117 天前
客户端里内嵌很常见,比如手机,桌面应用等等
另外如果在服务器的话,存文件很不错 还有就是小应用单台机器起步的时候也可以简单用下 |
![]() |
40
Buges 117 天前 via Android
@aegon466 交叉编译可以利用 zig ( zig 受 go 启发,能像 go 一样简单的交叉编译 c 代码)
https://dev.to/kristoff/zig-makes-go-cross-compilation-just-work-29ho |
![]() |
41
imklay 117 天前
@wangtian2020 #9 这种场景是不是也可以考虑 IndexDB ?
|
![]() |
42
shellc 117 天前
|
43
Jason86 117 天前
移动端的项目
|
44
soulzz 117 天前
blog 场景下
迁移 blog 可能只需要 commit 下 docker 镜像 直接迁移就可以 或者直接复制过去,没有任何迁移成本 |
![]() |
46
wangtian2020 117 天前
|
47
tairan2006 117 天前
各种客户端 /边缘端环境都经常使用,服务端倒是用得不多
|
![]() |
48
Ciallo 117 天前
客户端开发我自己用过几次,或者是离线的工具或服务
|
49
ilylx2008 117 天前
单机环境,copy 带走,批量写入性能不错。并发读写不行。
|
50
jianghu52 117 天前
我给人做了一个.net 的流水明细转化系统,为了存一些发票头,还用 sqlite 呢。一个轻,另外一个是不用在别人系统上装什么其他的东西。
|
![]() |
51
0x2CA 117 天前
我这边是游戏开发,会用到,策划配表大量数据,全加载内存占用内存,而且加载慢,通常游戏进程原因只会用到配置一部分数据,所以选择 sqlite ,使用查询不占用内存直接获取配置是最好的选择,而且通常是只读不写,只做配置数据库
|
![]() |
52
biubiuF 117 天前
本地数据
|
![]() |
53
jupiter157 116 天前
数据有四个操作:创建,读取,修改,删除。
数据可以以多种形式存储,比如常见的文本文件,格式可以是 json ,csv 或甚至二进制。它们的局限在于,对于任何数据操作,都需要整个文件读取,即使你只需要添加 /查询十万条记录中的某一条,因此效率十分低下。有些文件格式,例如 nc ,也支持片段读入,但是需要预先指定位置。 鉴于此,数据库可以实现按需查询、读取和写入,减少 io 负担。 sqlite 是很轻量化的数据库。 sqlite 的缺点是:对高并发写入支持差;只能本地调用;支持数据不能太大(几十 G 没问题) 应用场景是:需要经常更新和添加数据中的很小一部分;需要经常查询数据并返回一小部分。 博客没必要上数据库,文本就够了。 |
![]() |
54
feelinglucky 116 天前
@GoLand 如果是 Java 技术栈的话,我还是习惯用 H2 来 mock 数据库做单元测试(话说兄弟的 ID 好亮眼,甚至怀疑是不是潜规则了站长,哈哈哈
|
![]() |
55
yiqiao 116 天前
单元测试我用它
|