返回文章列表

文章

关于SQLite和DuckDB怎么选

目录
  1. 🧱 SQLite vs 🦆 DuckDB
  2. 1. 定位对比(最关键的区别)
  3. SQLite:嵌入式 OLTP 数据库(行式)
  4. DuckDB:嵌入式 OLAP 数据库(列式)
  5. 2. 技术特点对比
  6. 3. 性能差异(实际体验)
  7. SQLite
  8. DuckDB
  9. 4. 核心应用场景
  10. 🧱 SQLite 适用场景(OLTP)
  11. ✔ 本地应用数据库
  12. ✔ 小型服务端应用
  13. ✔ 日志、小型 KV、本地缓存
  14. ✔ 持久化使用频繁的 CRUD
  15. ⛔ 不适合:大规模分析、数据仓库、重聚合查询
  16. 🦆 DuckDB 适用场景(OLAP)
  17. ✔ 数据分析 / 数据科学
  18. ✔ 数据工程 / ETL
  19. ✔ 直接查询大文件(无需导入)
  20. ✔ 单机数据湖引擎
  21. ✔ BI 工具和分析应用嵌入 SQL 引擎
  22. ⛔ 不适合:业务数据库、复杂事务、多用户并发写入
  23. 5. 选择指南(根据你的需求)
  24. 6. 最终总结:一句话比较
  25. SQLite:
  26. DuckDB:

🧱 SQLite vs 🦆 DuckDB#

1. 定位对比(最关键的区别)#

SQLite:嵌入式 OLTP 数据库(行式)#

适合「频繁插入、更新、小型应用的本地存储」。

DuckDB:嵌入式 OLAP 数据库(列式)#

适合「单机分析、对大文件写 SQL、聚合查询、数据科学」。 一句话概括:

SQLite = 轻量 MySQL DuckDB = 轻量 ClickHouse / Snowflake


2. 技术特点对比#

特性SQLiteDuckDB
数据库类型行式(Row-based)列式(Columnar)
面向场景OLTPOLAP
主要强项读写事务、插入更新聚合、JOIN、全表扫描
并发单写多读并行查询、向量化执行
安装方式单文件单文件库
嵌入语言几乎所有语言Python / JS / Rust / Go / Java 等
文件支持自身文件CSV / JSON / Parquet / Arrow

3. 性能差异(实际体验)#

SQLite#

  • 对大文件(>1GB)做 group by 很慢
  • 多次 INSERT / UPDATE 很快
  • 可以作为真正的应用数据库

DuckDB#

  • 对几 GB〜几十 GB 的数据分析非常快
  • join / 聚合 / 排序性能远超 SQLite(几十倍)
  • 不适合作为业务数据库(事务能力弱)

4. 核心应用场景#

🧱 SQLite 适用场景(OLTP)#

✔ 本地应用数据库#

  • 桌面应用(如浏览器、编辑器)
  • 手机 App(iOS/Android)
  • 游戏保存数据
  • IoT 设备本地存储

✔ 小型服务端应用#

  • 嵌入式 API 服务的存储层
  • 不需要高并发的小网站

✔ 日志、小型 KV、本地缓存#

✔ 持久化使用频繁的 CRUD#

不适合:大规模分析、数据仓库、重聚合查询#

🦆 DuckDB 适用场景(OLAP)#

✔ 数据分析 / 数据科学#

  • 本地跑 SQL 分析 CSV/Parquet
  • 替代 pandas 做大数据处理
  • 生成数据报表

✔ 数据工程 / ETL#

  • 在后端服务中嵌入分析能力
  • ETL 的 transform 阶段(join, group)

✔ 直接查询大文件(无需导入)#

例如:

SELECT * FROM 's3://bucket/data.parquet' WHERE value > 100;

✔ 单机数据湖引擎#

  • 查询 Parquet
  • 与 Arrow 结合

✔ BI 工具和分析应用嵌入 SQL 引擎#

不适合:业务数据库、复杂事务、多用户并发写入#

5. 选择指南(根据你的需求)#

需求选择
本地 app 存储数据SQLite
移动应用本地数据库SQLite
Web 服务小数据 CRUDSQLite
批量分析数据(1GB~50GB)DuckDB
用 SQL 直接读 CSV / ParquetDuckDB
需要在后端嵌入分析引擎DuckDB
想替代 pandas 或 Spark(单机)DuckDB
做 ETL 的聚合 / joinDuckDB
小型数据仓库 / 本地 OLAPDuckDB

6. 最终总结:一句话比较#

SQLite:#

用于 应用的数据存储、高频读写、小规模数据库。

DuckDB:#

用于 本地或嵌入式的数据分析、文件查询、ETL、数据科学。