dev.to | 📄 原文链接 | 2026-10-19 收录

SQLite 3.54 的 diskused 要编译开关,而 sqlite3_analyzer 从不需要

来源:dev.to — 2026-10-18

📋 概述

SQLite 3.54.0 在 10 月 9 日发布,变更日志里有一行很容易被扫过去:sqlite3_analyzer 被弃用,取而代之的是内置的 diskused() 函数和 shell 里新增的 .diskused 点命令。作者想知道这到底省了什么、又付出了什么,于是把两个版本都从源码编出来,对同一个 20MB、四张表一个索引 35 万行的库各跑五次:.diskused 平均 0.025 秒,老工具 0.061 秒——同样一份报告,用时不到一半。但真正值钱的是他发现的那个坑:如果编译时没开 SQLITE_ENABLE_DBSTAT_VTAB,.diskused 会静默失败,不报错也不输出任何东西。他还测了并发场景,结论是没有任何变化。

🔑 核心要点

💡 金句

It fails, and tells you nothing about it.
译:它失败了,而且一个字都不告诉你。
← 返回 dev.to 首页