小巧。快速。可靠。
三选二。
文档
- ▼ 文档列表和索引
- ► 概述文档
- 关于 SQLite → 对 SQLite 是什么以及为什么要使用它的高级概述。
- SQLite 的适用场景 → 本文档描述了 SQLite 是合适数据库引擎的场景,以及客户端/服务器数据库引擎可能更合适的场景。
- 独特功能 → 本文档列举并描述了 SQLite 的一些与其他 SQL 数据库引擎不同的功能。
- SQLite 的怪癖 → 本文档简要列出了 SQLite 的一些不寻常的功能,这些功能往往会导致误解和困惑。 该列表包括有意创新的功能和仅为了向后兼容而保留的“错误功能”。
- SQLite 的测试方式 → SQLite 的可靠性和健壮性在很大程度上得益于彻底而细致的测试。 本文档介绍了在 SQLite 每次发布之前进行的众多测试。
- 版权 → SQLite 属于公有领域。 本文档描述了这意味着什么以及对贡献者的影响。
- 常见问题解答 → 文档标题已经说明了一切…
- 关于 SQLite 的书籍 → 关于 SQLite 的独立编写书籍列表。
- ► 编程接口
- ► 扩展
- ► 功能
- 8+3 文件名 → 如何使 SQLite 在仅支持 8+3 文件名的文件系统上工作。
- 自动增量 → 对 SQLite 中的 AUTOINCREMENT 关键字的描述,它做了什么,它在什么时候有用,以及为什么在没有严格需要的情况下应该避免它。
- 备份 API → 在线备份接口 可用于将磁盘文件中的内容复制到内存数据库中,反之亦然,它还可以对实时数据库进行热备份。 本应用说明给出了如何操作的示例。
- 错误和警告日志 → SQLite 支持“错误和警告日志”设计,以捕获有关操作期间可疑和/或错误事件的信息。 嵌入式应用程序鼓励启用错误和警告日志,以帮助调试在现场出现的应用程序问题。 本文档解释了如何做到这一点。
- 外键支持 → 本文档描述了版本 3.6.19 中引入的外键约束支持。
- 表达式索引 → 关于如何在表达式而不是单个列上创建索引的说明。
- 内部 Blob 存储与外部 Blob 存储 → 您应该将大型 BLOB 直接存储在数据库中,还是将它们存储在文件中,并在数据库中记录文件名? 本文档旨在阐明这个问题。
- SQLite 中的限制 → 本文档描述了 SQLite 的限制(字符串或 Blob 的最大长度、数据库的最大大小、数据库中表的最大数量等)以及如何在编译时和运行时更改这些限制。
- 内存映射 I/O → SQLite 支持内存映射 I/O。 从本文档中了解如何启用内存映射 I/O 以及使用内存映射 I/O 的各种优缺点。
- 多线程程序和 SQLite → SQLite 在多线程程序中使用是安全的。 本文档提供了有关如何最大限度地提高性能的详细信息和提示。
- 空值处理 → 不同的 SQL 数据库引擎以不同的方式处理空值。 SQL 标准含糊不清。 本(约 2003 年)文档描述了与其他 SQL 数据库引擎相比,SQLite 如何处理空值。
- 部分索引 → 部分索引是指只覆盖表中部分行的索引。 从本文档中了解如何在 SQLite 中使用部分索引。
- 共享缓存模式 → 版本 3.3.0 及更高版本支持两个或多个数据库连接共享同一个页面和模式缓存的功能。 此功能对于某些特定应用程序很有用。
- 解锁通知 → “解锁通知”功能可以与 共享缓存模式 一起使用,以更有效地管理资源冲突(数据库表锁)。
- URI 文件名 → 数据库文件的文件名可以使用普通文件名或 URI 指定。 使用 URI 文件名提供了额外的功能,如本文档所述。
- WITHOUT ROWID 表 → WITHOUT ROWID 优化是一种选项,它有时可以导致更小、更快的数据库。
- 预写日志 (WAL) 模式 → 使用预写日志的事务控制提供了更高的并发性,并且通常比默认的回滚事务更快。 本文档解释了如何使用 WAL 模式来提高性能。
- ► 工具
- ► 主张
- SQLite 作为应用程序文件格式 → 本文主张使用 SQLite 作为应用程序文件格式来代替 XML 或 JSON 或“一堆文件”。
- 知名用户 → 本页列出了使用 SQLite 的数千种设备和应用程序程序中的一小部分。
- 比文件系统快 35% → 本文指出,从 SQLite 数据库中读取 Blob 通常比从文件系统中的单个文件读取相同的 Blob 更快。
- ► 技术和设计文档
- 数据库损坏如何发生 → SQLite 对数据库损坏具有很强的抵抗力。但应用程序、操作系统和硬件错误仍然会导致数据库文件损坏。本文描述了 SQLite 数据库文件损坏的多种方式。
- SQLite 使用的临时文件 → SQLite 在处理某些 SQL 语句时可能会使用许多不同的临时文件。本文描述了 SQLite 使用的多种类型的临时文件,并提供了在创建临时文件是昂贵操作的系统上避免这些文件的建议。
- 内存数据库 → SQLite 通常将内容存储在磁盘文件中。但是,它也可以用作内存数据库引擎。本文解释了如何操作。
- SQLite 如何实现原子提交 → 对 SQLite 中实现具有原子提交的事务的逻辑的描述,即使在出现电源故障的情况下也是如此。
- SQLite 中的动态内存分配 → SQLite 具有一个复杂的内存分配子系统,可以对其进行配置和自定义以满足应用程序的内存使用需求,并且对内存不足条件和无泄漏是健壮的。本文提供了详细信息。
- 自定义和移植 SQLite → 本文解释了如何自定义 SQLite 的构建以及如何将 SQLite 移植到新平台。
- 锁定和并发
在 SQLite 版本 3 中 → 对版本 3 中新的锁定代码如何提高并发性和减少写入器饥饿问题的描述。 - SQLite 中的隔离 → 当我们说 SQLite 事务是“可序列化”时,这到底意味着什么?更改如何在同一个数据库连接内以及对其他数据库连接可见?
- 优化器概述 → 对 SQLite 代码生成器尝试的各种查询优化的快速概述。
- 下一代查询规划器 → 有关 SQLite 查询规划器的更多信息,特别是针对版本 3.8.0 进行的查询规划器重新设计。
- 架构 → SQLite 库的架构概述,对那些想要修改代码的人很有用。
- VDBE 操作码 → 本文是对 VDBE 理解的各种操作码的自动生成描述。程序员可以使用本文档作为参考,更好地理解 SQLite 的 EXPLAIN 列表的输出。
- 虚拟文件系统 → “VFS”对象是 SQLite 核心和底层操作系统之间的接口。从本文了解更多关于 VFS 对象的工作原理以及如何创建新的 VFS 对象的信息。
- 虚拟表 → 本文描述了 SQLite 中的虚拟表机制和 API 以及如何使用它为 SQLite 核心库添加新功能。
- SQLite 文件格式 → 对 SQLite 数据库和日志文件的格式的描述,以及在不使用 SQLite 的情况下创建软件来读取和写入 SQLite 数据库所需的其他详细信息。
- 编译选项 → 本文描述了可以在编译时设置的选项,以修改库的默认行为或省略可选功能以减小二进制文件大小。
- SQLite 的 Android 绑定 → 关于如何编译您自己的 SQLite for Android(绕过内置到 Android 中的 SQLite)以及代码和 makefile 的描述。
- 调试提示 → 用于跟踪、检查和理解 SQLite 核心库操作的技巧和技术的列表。
- ► 升级 SQLite,向后兼容性
- ► 过时的文档
- 异步 IO 模式 → 本页描述了与 SQLite 共同开发的异步 IO 扩展。使用异步 IO 可以通过将数据库写入委托给后台线程来使 SQLite 显得更具响应性。注意:此扩展已弃用。 WAL 模式 推荐作为替代。
- 版本 2 C/C++ API → 对 SQLite 版本 2.8 之前的 C/C++ 接口绑定的描述。
- 版本 2 数据类型 → 对 SQLite 版本 2 如何处理 SQL 数据类型的描述。简要概述:一切都是字符串。
- VDBE 教程 → VDBE 是 SQLite 中执行 SQL 语句实际工作的子系统。本页描述了 SQLite 版本 2.7 中 VDBE 的操作原理。对于想要修改 SQLite 源代码的任何人来说,这都是必读内容。
- SQLite 版本 3 → SQLite 版本 2.8 和 SQLite 版本 3.0 之间更改的摘要。
- 版本 3 C/C++ API → SQLite 版本 2.8 和 SQLite 版本 3.0 之间 API 相关更改的摘要。
- 速度比较 → 将 SQLite 版本 2.7.6 的速度与 PostgreSQL 和 MySQL 进行比较。