⚠️ 表和索引各自的树根在第几页
下面这段造一个带索引的库,打出表的树根在第几页、索引的树根在第几页、一共几页(三段,用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(ro
⚠️ "树根在第几页"这个数有什么用
每张表和每份索引都记着"树根在第几页"。这个数说明了【0】。
想知道一张表占了几页,该问谁
要知道一张表在文件里占了多少页,最直接的办法是【0】。
自己写:把隔离的两条路一次量清
把 TODO 补完,打出按同一快照读两次的结果(两段)、每次按最新读两次的结果(两段)、一共留了几版(五段,用 / 隔开;中间改一次,从 A 改成 B)。 这条路线两样工具都在题面里备好了 ① 真的
自己写:数一数为此多存了多少
把 TODO 补完:一个键改 6 次,打出留了几版和比只留一份多出几份(用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows, id
自己写:让两次读结果不一样
把 TODO 补完:同样是中间有人改了一次,但这次要让两次读结果不一样。打出两次读到的值(用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk
自己写:让两次读结果一样
把 TODO 补完:中间有人改了一次,但要让两次读结果一样。打出两次读到的值(用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk(rows,
换个快照,就看见新的了
接着上一题。下面这段在别人改完之后重新开一个快照再读。打出旧快照读到什么和新快照读到什么(用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这一层是能内省出来的) mk
⚠️ 同一个事务里读两次,结果一样
下面这段开一个快照,中间别人改了两次,然后按快照读了两次。打出第一次读到什么、第二次读到什么、期间被挡了几次(三段,用 / 隔开)。 这条路线两样工具都在题面里备好了 ① 真的 sqlite3(页这
⚠️ 写和写之间还要不要锁
有了多版本之后,两个事务同时改同一行时【0】。