自己写:量出索引的代价
把 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,