自己写:量出索引的代价

把 TODO 补完,打出没索引时几页、有索引时几页、多出来几页(三段,用 / 隔开;都是 2000 行)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, idx, w) → 现造一

开始练习 →

自己写:出一份存储体检单

把 TODO 补完,打出一页多大、一共几页、表占几页、索引占几页、索引的树根在第几页(五段,用 / 隔开;2000 行带索引)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, id

开始练习 →

索引这棵树分哪两种页

一份索引在磁盘上的页分成两类,分别是【0】。

开始练习 →

⚠️ 树为什么长不高

几百万行的表,索引这棵树往往也只有三四层。原因是【0】。

开始练习 →

⚠️ 数一数这棵树的两类页

下面这段打出索引 ix 的页分成哪几类、各几页。⚠️ 结果形如 [("internal", 1), ("leaf", 14)],这里只打出两个数(用 / 隔开)。 这条路线两样工具都在题面里备好了

开始练习 →

表本身也是一棵树

下面这段打出表 t 的两类页各几页(用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, idx, w) → 现造一个库:rows 行、每行 w 个字符、idx=True

开始练习 →

自己写:数出叶子页有几页

把 TODO 补完,打出索引 ix 的叶子页有几页。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, idx, w) → 现造一个库:rows 行、每行 w 个字符、idx=True

开始练习 →

自己写:行数变多,树会怎么长

把 TODO 补完,打出500 行时索引占几页和2000 行时索引占几页(用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, idx, w) → 现造一个库:rows

开始练习 →

自己写:表和索引的结构对照

把 TODO 补完,打出表的指路页数、表的叶子页数、索引的指路页数、索引的叶子页数(四段,用 / 隔开;2000 行带索引)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, idx

开始练习 →

自己写:把索引的完整代价算出来

把 TODO 补完,打出没索引几页、有索引几页、索引占几页、索引的叶子页数、索引的指路页数(五段,用 / 隔开;都是 2000 行)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows,

开始练习 →