关于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 级)、复杂查询 / 统计
低访问量、低写入频率(如本地笔记、小型工具) 多用户共享数据、需要精细化权限控制
需简单备份 / 迁移(拷贝文件即可) 需高可用、可扩展(主从复制、分布式部署)
相关推荐
JIngJaneIL17 小时前
基于Java+ vue图书管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
VX:Fegn089518 小时前
计算机毕业设计|基于springboot + vue考勤管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
晚风_END18 小时前
postgresql数据库|数据库维护系列|postgresql数据库参数配置详解和数据库维护时机的选择(三)
运维·开发语言·数据库·postgresql·oracle
一 乐18 小时前
幼儿园管理|基于springboot + vue幼儿园管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
JIngJaneIL18 小时前
基于Java + vue校园论坛系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
期待のcode18 小时前
Springboot多数据源配置
java·数据库·spring boot·后端·mybatis
JH灰色18 小时前
【大模型】-LangChain自定义工具调用
数据库·langchain
自在极意功。18 小时前
深入解析JDBC:Java数据库操作的基础
java·开发语言·数据库·jdbc
semantist@语校18 小时前
第五十五篇|从解释约束到结构化认知:京都国际学院的语言学校Prompt工程化实践
大数据·数据库·人工智能·python·百度·prompt·知识图谱
imbackneverdie19 小时前
什么是Token?——理解自然语言处理中的基本单位
数据库·人工智能·自然语言处理·aigc·token