对于客户端数据存储方案——SQLite的思考

SQLite 比较适合进行本地小型数据的存储,在功能丰富性和并发能力上不如 MySQL。

数据类型差异

  • SQLite 使用动态类型系统:只有 5 种基本存储类 (NULL, INTEGER, REAL, TEXT, BLOB)

  • 类型亲和性:SQLite 会将声明的列类型映射到最接近的存储类

  • 与 MySQL 的严格类型系统不同,SQLite 更灵活但可能缺少某些特定类型

SQL 语法差异

  • 自增字段 :SQLite 使用 AUTOINCREMENT 关键字而非 AUTO_INCREMENT

  • LIMIT 子句 :SQLite 使用 LIMIT offset, countLIMIT count OFFSET offset

  • INSERT 语句 :SQLite 使用 INSERT OR IGNORE,并非 INSERT IGNORE

  • 外键约束 :默认禁用,需要 PRAGMA foreign_keys = ON

功能限制

  • 用户管理:SQLite 没有用户概念,依赖文件系统权限

  • 网络访问:SQLite 是本地数据库,不能通过网络直接访问

管理工具差异

  • 没有类似 MySQL 的 mysql 命令行客户端,而是 sqlite3 命令行工具

  • 备份方式不同:SQLite 通常直接复制数据库文件

相关推荐
blurblurblun32 分钟前
Redis实战(7)-- 高级特性 Redis Stream数据结构与基础命令
数据库·redis·缓存
永卿0011 小时前
mysql 日志机制
数据库·mysql
先鱼鲨生2 小时前
etcd 的安装与使用
数据库·etcd
crossoverJie3 小时前
StarRocks 如何在本地搭建存算分离集群
数据库·后端
潇凝子潇3 小时前
如何在不停机的情况下,将MySQL单库的数据迁移到分库分表的架构上?
数据库·mysql·架构
Tapdata4 小时前
什么是 Operational Data Hub?它因何而生,又为何能够在当下成为技术共识?
数据库
这里有鱼汤4 小时前
普通人做量化,数据库该怎么选?
数据库·后端
BOOM朝朝朝4 小时前
Mongo索引
数据库·后端
许野平6 小时前
Rust:如何访问 *.ini 配置文件?
开发语言·数据库·rust·ini·configparser
程序终结者7 小时前
超越边界:MongoDB 16MB 文档限制的 pragmatic 解决方案
数据库·mongodb