⚠️ "加了内存还是慢"该往哪儿想

给数据库加了很多内存,某条查询还是慢。最该先怀疑的是【0】。

开始练习 →

"读的人在等写的人"说明了什么

看到大量读请求卡在那里等一个写事务,说明这个系统【0】。

开始练习 →

把这条路线的四个数摆在一起

下面这段打出2000 行占几页、顺序扫 20 页命中几次、有日志时能不能补、按快照读到什么(四段,用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, idx, w) →

开始练习 →

⚠️ 自己写:解释"加内存没用"

把 TODO 补完:用 5 页和 50 页两种池子各顺序扫 20 页,打出两种各命中几次(用 / 隔开)。⚠️ 这两个数就是"加内存没用"的证据。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是

开始练习 →

自己写:解释"小改动也不便宜"

把 TODO 补完,打出一页多大和2000 行的库一共几页(用 / 隔开)。⚠️ 改一行数据,落盘的最少就是"一页多大"那个数。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) m

开始练习 →

自己写:解释"读为什么在等写"

把 TODO 补完:用多版本的做法,中间写 3 次,读 3 次。打出读被挡了几次和留了几版(用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, idx, w) → 现造

开始练习 →

自己写:解释"建了索引反而变慢"

把 TODO 补完,打出没索引几页、有索引几页、多出几页(三段,用 / 隔开;都是 2000 行)。⚠️ 每次写入都要把多出来的那些页也维护一遍。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk

开始练习 →

自己写:交一份原理诊断单

把 TODO 补完,打出一页多大、2000 行几页、加索引后几页、顺序扫 20 页命中几次、多版本下读被挡几次(五段,用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows,

开始练习 →

一个数据系统算不算立住了

判断一个数据系统是不是真的能用,要看的是【0】。

开始练习 →

规划一个系统从哪儿开始

跑得通只是四分之一 只顾跑通 四样都立 要给一件事设计数据系统,第一步该做的是【0】。

开始练习 →