关于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 级)、复杂查询 / 统计
低访问量、低写入频率(如本地笔记、小型工具) 多用户共享数据、需要精细化权限控制
需简单备份 / 迁移(拷贝文件即可) 需高可用、可扩展(主从复制、分布式部署)
相关推荐
highreport1 小时前
HighReport报表工具定时调度和邮件定时发送
运维·服务器·数据库
01_ice1 小时前
数据库基础
数据库
deepdata_cn1 小时前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴1 小时前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh2 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean2 小时前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
Lumistory2 小时前
城市景观亮化设施维护管养的核心痛点与标准化解决方案
数据库·光照贴图
倒流时光三十年2 小时前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch
努力进修3 小时前
“数据心脏” 驱动能源自主:国产数据库支撑 Cemsol 实现固井全流程数字化闭环
数据库·人工智能·能源
vHelios3 小时前
SQL不会写?不会找关联表?复杂SQL语句编写逻辑实现思路请查收✉
数据库·sql