diff --git a/notes/pics/deep-pagination.png b/notes/pics/deep-pagination.png index dfc2bf4d..006b8d23 100644 Binary files a/notes/pics/deep-pagination.png and b/notes/pics/deep-pagination.png differ diff --git a/notes/pics/mysql-2pc.png b/notes/pics/mysql-2pc.png index f79973af..603724e1 100644 Binary files a/notes/pics/mysql-2pc.png and b/notes/pics/mysql-2pc.png differ diff --git a/tools/diagram/src/deep-pagination.svg b/tools/diagram/src/deep-pagination.svg index 7f168274..b272def3 100644 --- a/tools/diagram/src/deep-pagination.svg +++ b/tools/diagram/src/deep-pagination.svg @@ -1,31 +1,31 @@ - + - + - + @@ -33,16 +33,16 @@ 深分页为什么慢 LIMIT 1000000, 10:从头数过 1000000 条,丢弃后再取 10 条 - + 读取后丢弃 1000000 条 - + 返回 10 条 游标分页:从上一页最后一条之后开始,直接定位 沿 B+ 树从根节点向下查找,只读几个节点 - + 返回 10 条 200 万行的表上实测:LIMIT 1000000, 10 耗时 1321 ms,游标分页 0.13 ms,并且与翻到第几页无关。 diff --git a/tools/diagram/src/mysql-2pc.svg b/tools/diagram/src/mysql-2pc.svg index 92f138ed..ee6973a2 100644 --- a/tools/diagram/src/mysql-2pc.svg +++ b/tools/diagram/src/mysql-2pc.svg @@ -1,50 +1,46 @@ - + - + - + 两阶段提交与崩溃恢复 - - + 开始事务 修改内存中的页 - - + ① prepare 写 redo log 并刷盘 - - + ② 写 binlog 含 Xid,刷盘 - - + ③ commit redo log 标记提交