Sqlite

SQLite,全球部署最广泛的嵌入式数据库引擎,嵌入在数十亿设备中。

SQLite WAL预写日志机制详解

SQLite官方文档详解WAL(预写日志)机制的工作原理、性能特征与配置方式。WAL相比传统回滚日志在大多数场景下更快、支持读写并发,但要求所有进程在同一台机器上。默认WAL文件达到1000页时自动checkpoint,可通过PRAGMA调整阈值或关闭自动checkpoint。
评论点赞收藏3 天前

SQLite字符串中的NUL字符问题与处理

SQLite允许字符串包含NUL字符,但会导致length、quote和CLI显示截断等令人困惑的行为,实际查询却基于完整字符串匹配。文章提供了检测(CAST为BLOB或instr函数)和清理(substr移除)NUL字符的具体SQL方法。
评论点赞收藏31 天前

SQLite创始人:为什么灵活类型比严格类型更好

SQLite创始人Richard Hipp撰文力挺动态类型,反驳“严格类型防Bug”教条。文中指出在应用层已有Value对象封装时,强制类型检查无法防止逻辑错误,反而掩盖数据源异常信号。灵活类型在属性表、脏数据导入、跨库兼容及Schema演进(如无缝升级哈希算法)中极具实用价值。
评论点赞收藏35 天前

SQLite CPU 占用率的测量与降低:16 年优化实录

SQLite 团队公开了长达 16 年的 CPU 优化历程,展示了如何通过 cachegrind 工具和微优化将 CPU 周期消耗降低至原来的 29%。文章详细拆解了标准化测试工作负载、编译选项及性能测量工作流,并坦诚指出了当前方法的局限性。对于关注底层性能调优、嵌入式数据库或 C 语言工程实践的开发者来说,这是一份极具参考价值的一手技术文档。
评论点赞收藏40 天前

SQLite 中的 assert 及其类似宏

本文介绍了 SQLite 源码中 assert、ALWAYS、NEVER 和 testcase 四个断言宏的设计哲学与具体用法。作者阐述了为何坚持使用 assert 而非将其视为安全网,以及不同构建类型下的行为差异。 文章通过代码示例展示了如何利用这些宏验证前置条件、防止越界访问及确保测试覆盖率,体现了 SQLite 严谨的工程实践。
评论点赞收藏45 天前

如何搞坏一个 SQLite 数据库文件

SQLite 官方文档详细列举了导致数据库文件损坏的各种罕见情况。包括文件描述符误用、备份时事务未提交、文件系统锁缺陷以及磁盘同步欺骗等问题。 文章提供了具体的代码案例和修复建议,帮助开发者理解底层机制并避免数据丢失。
评论点赞收藏50 天前

SQLite:聚簇索引与 WITHOUT ROWID 优化详解

本文详细解释了 SQLite 中 WITHOUT ROWID 表的原理与优化机制。普通表使用隐藏的 rowid 作为主键索引,而 WITHOUT ROWID 表直接使用主键建立聚簇索引,将数据存储在索引节点中。 这种设计在文本或非整数主键场景下,能减少数据存储冗余,将查询所需的二叉树搜索次数从两次降低为一次,从而节省空间并提升性能。
评论点赞收藏50 天前

SQLite 现在拥有了一个机器生成的 Bug 论坛

SQLite 官方推出了一个由机器生成的 Bug 论坛页面,集中展示了近期发现并修复的一系列漏洞。 列表包含多个严重的安全问题,如堆溢出、整数溢出和拒绝服务漏洞,均已在短时间内被解决。
评论点赞收藏79 天前

SQL递归查询的奇技淫巧:用代码绘制曼德博分形

SQLite官方文档详解了递归CTE的语法与算法原理,并通过组织树、家族谱系和版本控制图展示了实际应用场景。 文章最后展示了一个极具创意的案例:仅使用SQL递归查询,在终端中计算并绘制出Mandelbrot分形集的ASCII艺术图。
评论点赞收藏93 天前

SQLite 发布基于基督教《圣本笃守则》的开发者道德准则

SQLite 创始人及开发者团队公布了一份基于《圣本笃守则》的道德准则,用于规范团队内部及与用户的互动。该文档源于供应商注册表格的需求,后更名为“道德准则”以避免与通用的行为准则混淆。 这份准则包含72条规则,核心是基督教价值观,如爱上帝、爱人如己、不杀不偷等。开发者承诺单方面遵守此准则对待用户,无论用户如何对待他们。此举在科技社区引发了关于宗教介入开源项目的争议和讨论。
评论点赞收藏94 天前

部署最广泛的数据库引擎

SQLite 官方页面声称其部署量超过所有其他数据库引擎之和,存在于数十亿台安卓、iOS、Mac 及 Windows 设备中。 文章推测全球活跃使用的 SQLite 数据库文件可能超过一万亿个,是部署最广的软件模块之一。
评论点赞收藏101 天前

SQLite 归档文件格式详解

介绍 SQLite Archive 格式,这是一种基于 SQLite 数据库的文件容器。文章对比了它与 ZIP 和 Tarball 的优劣,包括事务支持、SQL 查询能力和绕过防火墙限制等优势,以及体积稍大、兼容性较差等劣势。同时提供了命令行和代码层面的管理方法。
评论点赞收藏101 天前

SQLite 获美国国会图书馆推荐为数据存储格式

美国国会图书馆将 SQLite 列为数据集的推荐存储格式之一。这主要基于其规格公开、广泛采用、无需复杂依赖以及无专利限制等优势。 目前仅有 XML、JSON 和 CSV 与 SQLite 一同被列入该推荐列表。这一认定提升了 SQLite 在数字长期保存领域的地位。
评论点赞收藏101 天前

SQLite3 WebAssembly 与 JavaScript 文档概览

本文是 SQLite 官方关于在浏览器中使用 WebAssembly 和 JavaScript 运行 SQLite 的文档索引页面。 内容涵盖了项目介绍、构建指南、API 参考以及第三方基于该技术的项目案例。
评论点赞收藏110 天前

SQLite Vec1:原生向量搜索扩展详解

SQLite 官方发布了 Vec1 扩展,支持在 SQLite 中进行近似最近邻向量搜索。该扩展使用 C 语言实现,支持 L2 和余弦距离,并针对 x86 和 ARM 架构进行了 SIMD 优化。 目前版本为 0.7,提供了详细的编译和使用指南。作者还列出了未来的路线图,包括性能优化、更多数据类型支持以及可能的图索引替代方案。
评论点赞收藏113 天前

SQLite 源码合并机制与构建指南

本文介绍了 SQLite 源码合并为一个文件(Amalgamation)的原因和好处,主要是为了简化部署并利用编译器优化提升性能。同时解释了如何解决超大文件导致的调试问题,提供了拆分源码文件的方案及构建方法。
评论点赞收藏118 天前

SQLite 引入 STRICT 严格类型检查

SQLite 自 3.37 版本起支持 STRICT 表类型,强制列定义数据类型并严格校验插入数据的类型一致性。 这解决了部分开发者对 SQLite 动态类型过于灵活的不满,使其行为更接近传统关系型数据库,同时保留了 ANY 类型的灵活性。
评论点赞收藏141 天前

SQLite WAL机制详解与重置数据库时的损坏Bug

本文详细解释了SQLite的Write-Ahead Logging(预写日志)机制的工作原理、优缺点及配置方法。重点指出了在特定情况下重置数据库可能导致文件损坏的Bug,提醒开发者注意WAL文件的持久性及其与数据库文件的同步问题。
评论点赞收藏151 天前

SQLite 3.51.3 版本发布说明

SQLite 发布了 3.51.3 版本,主要修复了 WAL 模式下的数据库损坏问题及其他小 Bug。 此前 3.51.x 系列引入了新的 JSON 函数、C 语言 API 扩展以及多项性能优化。
评论点赞收藏155 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。