嵌入式项目里用数据库?不少人第一反应是重,但其实SQLite3这种小巧的数据库用起来还挺顺。它不走客户端/服务器那一套,直接嵌进程序里就能跑,连服务进程都不需要,适合资源有限的设备,比如开发板、ST 芯片啥的。
SQLite3 写的是C 语言,跨平台能力不错,在Linux、Windows、macOS上都能用。你要是搞的是嵌入式,比如移植到STi7167平台,只要交叉编译搞定,基本就能跑。链接库、编译参数这些虽然麻烦点,但搞清楚一次后,后面就省心了。
命令行工具sqlite3
挺方便,直接建库、查表、改数据都能整,响应也快。还有个好处是,像Python、Java、C++这类语言基本都集成了 SQLite 的库,开发起来挺顺手的。
你要是想深入了解它的底层架构,SQLite 的设计真不复杂。它有个虚拟机,会把 SQL 语句翻译成一堆内部指令再执行。数据结构也清晰,核心就仨:页(Page)、B 树、记录,配合Pager模块来管理存储,逻辑和物理结构都挺清楚。
API 接口设计得也还行,比如sqlite3_open
打开数据库,sqlite3_exec
直接跑 SQL 语句,sqlite3_step
分步执行都挺直观。还支持事务,BEGIN、COMMIT、ROLLBACK那套都有,数据一致性也能保证。
SQL 语法也比较全,除了基本的 CRUD,还支持ALTER TABLE
、ANALYZE
、ATTACH
等复杂操作。如果你用得熟点,还能自定义函数,让 SQL 变得更灵活。
,SQLite3真的挺适合做嵌入式数据库的,轻量、稳定、易集成。如果你在搞智能设备或者小型应用,试试它没错。如果你想看源码或者找编译工具,下面这些链接你可以戳一戳: