关于sqlite

SQLite 是一款嵌入式关系型数据库,核心特点是 "轻量、零配置、自包含",完全无需单独安装数据库服务器,数据直接存储在单个文件中。

  • SQLite 本身是一个数据库软件库 ,支持标准的 SQL 语言(结构化查询语言)来操作数据(比如增删改查、建表、关联查询等);
  • 它不需要独立的数据库服务进程(区别于 MySQL、PostgreSQL 等 "客户端 - 服务器" 架构的数据库),而是直接嵌入到应用程序中,与应用共享进程,数据存储为单个 .db(或 .sqlite3)文件,拷贝这个文件就相当于拷贝了整个数据库。

2. 核心特性(轻量 + 易用 + 跨平台)

  • 零配置:无需安装、无需启动服务、无需配置用户名密码,开箱即用;
  • 跨平台:单个数据库文件可在 Windows、macOS、Linux、移动端(Android/iOS)等所有主流平台通用;
  • 轻量小巧:核心库体积仅几百 KB,内存占用极低;
  • 支持标准 SQL:兼容大部分 SQL-92 标准,支持表、索引、事务(ACID 特性)、视图、触发器等关系型数据库核心功能;
  • 文件级存储:整个数据库就是一个文件,便于备份、迁移(直接复制文件即可)。

3. 适用场景(优势领域)

  • 嵌入式应用:桌面软件(如 PDF 阅读器、编辑器)、移动端 App(Android 内置 SQLite,iOS 也原生支持);
  • 小型应用 / 原型:个人项目、内部工具、产品原型(无需复杂的数据库部署);
  • 数据缓存:作为应用的本地缓存数据库(比如 App 离线数据存储);
  • 轻量服务:访问量低、并发少的小型 Web 服务(不适合高并发场景)。

4. 不适用场景(局限性)

  • 高并发写入:不支持多进程 / 多线程高频率写入(会出现锁等待,性能下降);
  • 大型应用 / 高吞吐:数据量超大(如 GB 级以上且频繁查询)、高并发访问的服务(更适合 MySQL、PostgreSQL);
  • 复杂权限控制:缺乏精细化的用户权限管理(适合单应用独占数据库的场景)。

核心本质区别(最关键!)

维度 SQLite MySQL(含 MariaDB)
架构类型 嵌入式数据库(无独立服务) 客户端 - 服务器(C/S)架构数据库
运行方式 嵌入到应用进程中,与应用 "同进程" 运行 独立进程(数据库服务),应用通过网络 / 本地连接访问
数据存储形式 整个数据库 = 1 个独立文件(.db/.sqlite3) 数据分散存储在多个文件(表空间、日志文件等)
核心定位 单应用 / 本地数据存储("随用随带") 多应用 / 多用户共享数据("中心服务器")
依赖与部署 零依赖、免部署(仅需嵌入库) 需安装服务、配置端口 / 账号 / 权限

总结:场景

选择 SQLite 的场景 选择 MySQL 的场景
桌面应用、移动端 App(Android/iOS)、嵌入式设备 Web 服务、后台系统、企业级应用
个人项目、内部工具、产品原型(快速落地) 高并发读写(如电商、社交、支付系统)
离线应用、本地缓存(如 App 离线数据、日志存储) 大数据量(GB/TB 级)、复杂查询 / 统计
低访问量、低写入频率(如本地笔记、小型工具) 多用户共享数据、需要精细化权限控制
需简单备份 / 迁移(拷贝文件即可) 需高可用、可扩展(主从复制、分布式部署)
相关推荐
麦聪聊数据2 小时前
企业数据市场建设(三):API 化服务封装,让数据开箱即用、避免重复开发
数据库
麦聪聊数据2 小时前
企业数据市场建设(四):流程闭环与价值运营,让数据市场真正转起来
运维·数据库
正儿八经的少年2 小时前
redis 的大 key 和热 key 详解
数据库·redis·缓存
AI砖家3 小时前
多智能体系统实战:架构设计、数据库表设计与 Skill 体系
数据库·多智能体·skill·agent架构设计·agengt
夜雪一千3 小时前
MySQL查询条件的顺序是否影响查询效率
数据库·mysql
X-⃢_⃢-X3 小时前
十、Redis之布隆过滤器
数据库·redis·缓存
Nturmoils3 小时前
订单号查出了三笔,我以为是数据脏了,其实是自己写错了
数据库
ZKNOW甄知科技3 小时前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
WWJA王文举3 小时前
单片机参数如何掉电保存:Flash、EEPROM和配置存储完整设计
数据库·stm32·mongodb·c#
TDengine (老段)4 小时前
TDengine 免费版说明
java·大数据·数据库·物联网·时序数据库·tdengine