关于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 级)、复杂查询 / 统计
低访问量、低写入频率(如本地笔记、小型工具) 多用户共享数据、需要精细化权限控制
需简单备份 / 迁移(拷贝文件即可) 需高可用、可扩展(主从复制、分布式部署)
相关推荐
DBA圈小圈1 小时前
【KingbaseES】V8R6查询数据库大小
数据库·database
科研面壁者2 小时前
SPSS——独立样本T检验
数据库·人工智能·机器学习·信息可视化·数据分析·spss·数据处理
云栈开源日记2 小时前
Python 开发技术栈梳理:从数据库、爬虫到 Django 与机器学习
数据库·爬虫·python·学习·机器学习·django
倔强的石头1063 小时前
openGauss数据库:从CentOS 7.9部署到实战验证
linux·数据库·centos
4***14905 小时前
MySQL调试技巧与工具
数据库·mysql
Arva .5 小时前
如何监控并优化慢 SQL?
数据库·sql
w***4248 小时前
【MySQL】复合查询
数据库·mysql
q***01778 小时前
【MySQL】表的基本操作
数据库·mysql·oracle
budingxiaomoli8 小时前
存储过程和触发器
数据库