Skip to content

Commit 7f4dea9

Browse files
committed
docs: 更新文档中的图片链接
1 parent b19cf9b commit 7f4dea9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+287
-300
lines changed

docs/00.笔记/Java/极客时间教程-深入拆解Java虚拟机笔记.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ permalink: /pages/c5458deb/
1515

1616
## 开篇词 为什么我们要学习 Java 虚拟机?
1717

18-
![](https://learn.lianglianglee.com/%E4%B8%93%E6%A0%8F/%E6%B7%B1%E5%85%A5%E6%8B%86%E8%A7%A3Java%E8%99%9A%E6%8B%9F%E6%9C%BA/assets/414248014bf825dd610c3095eed75377.jpg)
18+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/88c9bc3aed624499a49be95a3ad92591.jpg)
1919

2020
## Java 代码是怎么运行的?
2121

2222
从虚拟机视角来看,执行 Java 代码首先需要将它编译而成的 class 文件加载到 Java 虚拟机中。加载后的 Java 类会被存放于方法区(Method Area)中。实际运行时,虚拟机会执行方法区内的代码。
2323

24-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/ab5c3523af08e0bf2f689c1d6033ef77.png)
24+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/dd83962222bb41c082212725c8dc064e.png)
2525

2626
在运行过程中,每当调用进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数。这个栈帧的大小是提前计算好的,而且 Java 虚拟机不要求栈帧在内存空间里连续分布。
2727

@@ -31,11 +31,11 @@ permalink: /pages/c5458deb/
3131

3232
在 HotSpot 里面,上述翻译过程有两种形式:第一种是解释执行,即逐条将字节码翻译成机器码并执行;第二种是即时编译(Just-In-Time compilation,JIT),即将一个方法中包含的所有字节码编译成机器码后再执行。
3333

34-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/5ee351091464de78eed75438b6f9183b.png)
34+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/d3d86465ca89454ba954e1254a2f8bb0.png)
3535

3636
## Java 的基本类型
3737

38-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/77dfb788a8ad5877e77fc28ed2d51745.png)
38+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/2906a9fb62964492a0c4724fc9194392.png)
3939

4040
## Java 虚拟机是如何加载 Java 类的
4141

@@ -78,7 +78,7 @@ Java 虚拟机中的即时编译器会使用内联缓存来加速动态绑定。
7878

7979
Java 字节码中,每个方法对应一个异常表。当程序触发异常时,Java 虚拟机将查找异常表,并依此决定需要将控制流转移至哪个异常处理器之中。Java 代码中的 catch 代码块和 finally 代码块都会生成异常表条目。
8080

81-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/17e2a3053b06b0a4383884f106e31c06.png)
81+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/a7b895454d37406684c97cca6973cec4.png)
8282

8383
## JVM 是如何实现反射的?
8484

@@ -147,27 +147,27 @@ GC Roots 包括(但不限于)如下几种:
147147

148148
标记-复制把内存区域分为两等分,分别用两个指针 from 和 to 来维护,并且只是用 from 指针指向的内存区域来分配内存。当发生垃圾回收时,便把存活的对象复制到 to 指针指向的内存区域中,并且交换 from 指针和 to 指针的内容。复制这种回收方式同样能够解决内存碎片化的问题,但是它的缺点也极其明显,即堆空间的使用效率极其低下。
149149

150-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/4749cad235deb1542d4ca3b232ebf261.png)
150+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/663ad7fd3d5544f5afd555099fc9cf73.png)
151151

152152
#### 标记-清除
153153

154154
标记-清除即把死亡对象所占据的内存标记为空闲内存,并记录在一个空闲列表(free list)之中。当需要新建对象时,内存管理模块便会从该空闲列表中寻找空闲内存,并划分给新建的对象。
155155

156-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/f225126be24826658ca5a899fcff5003.png)
156+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/1e28d8d7f60e4ea5b4fb53a1ec6547b6.png)
157157

158158
#### 标记-整理
159159

160160
标记-整理把存活的对象聚集到内存区域的起始位置,从而留下一段连续的内存空间。这种做法能够解决内存碎片化的问题,但代价是压缩算法的性能开销。
161161

162-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/415ee8e4aef12ff076b42e41660dad39.png)
162+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/702026ff23bf4c20a77ed2e27b72f0b5.png)
163163

164164
## 垃圾回收(下)
165165

166166
Java 虚拟机将堆划分为新生代和老年代。其中,新生代又被划分为 Eden 区,以及两个大小相同的 Survivor 区。
167167

168168
可以通过参数 -XX:SurvivorRatio 来调整 Eden 区和 Survivor 区的比例。
169169

170-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%8b%86%e8%a7%a3Java%e8%99%9a%e6%8b%9f%e6%9c%ba/assets/2cc29b8de676d3747416416a3523e4e5.png)
170+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/146238f843b1409884db431dcc4315b0.png)
171171

172172
当发生 Minor GC 时,Eden 区和 from 指向的 Survivor 区中的存活对象会被复制到 to 指向的 Survivor 区中,然后交换 from 和 to 指针,以保证下一次 Minor GC 时,to 指向的 Survivor 区还是空的。
173173

docs/00.笔记/Java/极客时间教程-深入浅出Java虚拟机笔记.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ permalink: /pages/76e8b6af/
3939
4040
## 大厂面试题:你不得不掌握的 JVM 内存管理
4141

42-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/Cgq2xl4VrjWAPqAuAARqnz6cigo666.png)
42+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/1ba204687bb04839afbcc6c5bcf46466.png)
4343

44-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/Cgq2xl4VrjaANruFAAQKxZvgfSs652.png)
44+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/9c3aee1c21244c50849eee8502388283.png)
4545

46-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/Cgq2xl4VrjaAIlgaAAJKReuKXII670.png)
46+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/4a0adfde8c164ae683f5bda6953556b6.png)
4747

4848
## 大厂面试题:从覆盖 JDK 的类开始掌握类的加载机制
4949

@@ -56,7 +56,7 @@ Java 类的完整生命周期包括以下几个阶段:
5656
- **解析(Resolution)** - 将常量池的符号引用替换为直接引用的过程
5757
- **初始化(Initialization)** - 为类的静态变量赋予正确的初始值,JVM 负责对类进行初始化,主要对类变量进行初始化
5858

59-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/CgqCHl9ZjveAemjoAAB4J1dCVDo17.jpeg)
59+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/5b51a4eb7f2547a6a5a413da73b3fee5.jpeg)
6060

6161
类加载器
6262

@@ -69,21 +69,21 @@ Java 类的完整生命周期包括以下几个阶段:
6969

7070
**双亲委派机制** - 除了顶层的启动类加载器以外,其余的类加载器,在加载之前,都会委派给它的父加载器进行加载。
7171

72-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/Cgq2xl4cQNeAZ4FuAABzsqSozok762.png)
72+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/2d78286796c14b66a8676220243e1a0c.png)
7373

7474
## 动手实践:从栈帧看字节码是如何在 JVM 中进行流转的
7575

76-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/CgpOIF4ezuOAK_6bAACFY5oeX-Y174.jpg)
76+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/2c669567dcc64a4ca31d5f2e02391dd5.jpg)
7777

78-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/CgpOIF4ezeKAHVCXAABv7rzSgXE896.jpg)
78+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/65ffdffe48df490fa13315218c231608.jpg)
7979

8080
- javap - javap 是 JDK 自带的反解析工具。它的作用是将 .class 字节码文件解析成可读的文件格式。
8181

8282
- jclasslib - jclasslib 是一个图形化的工具,能够更加直观的查看字节码中的内容。
8383

8484
## 大厂面试题:得心应手应对 OOM 的疑难杂症
8585

86-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/Cgq2xl4hefWAWKFZAAMwndGjScg437.png)
86+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/a2e5edadbf124c51ad0ec22624f194fe.png)
8787

8888
对象生命周期判断
8989

@@ -113,7 +113,7 @@ GC 分代收集:年轻代 GC 使用标记-复制算法;老年代 GC 使用
113113
- 老年代:Serial Old、Parallel Old、CMS
114114
- 元空间:G1、ZGC
115115

116-
![](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%b7%b1%e5%85%a5%e6%b5%85%e5%87%ba%20Java%20%e8%99%9a%e6%8b%9f%e6%9c%ba-%e5%ae%8c/assets/Cgq2xl4lQuiAHmINAACWihcFScA929.jpg)
116+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/a0611e2496004dfd987178b0b49b43da.jpg)
117117

118118
GC 收集器配置参数:
119119

docs/00.笔记/分布式/分布式理论/数据密集型应用系统设计笔记一.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ permalink: /pages/ea0d9bcb/
1919

2020
### 认识数据系统
2121

22-
单一工具难以满足复杂应用系统的需求,因此整体工作被拆解为一系列能被单个工具高效完成的任务,并通过**应用代码**将它们缝合起来。比如一个缓存、索引、数据库协作的例子: ![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630635449781-eccd8717-84aa-4d52-b8d7-98790e2c92c7.png) 一个应用被称为数据密集型的,如果数据是其主要挑战(数据量,数据复杂度、数据变化速度)——与之相对的是计算密集型,即处理器速度是其瓶颈。 软件系统中很重要的三个问题:
22+
单一工具难以满足复杂应用系统的需求,因此整体工作被拆解为一系列能被单个工具高效完成的任务,并通过**应用代码**将它们缝合起来。比如一个缓存、索引、数据库协作的例子: ![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/68fd79a0a7514ec1b13935331285c876.png) 一个应用被称为数据密集型的,如果数据是其主要挑战(数据量,数据复杂度、数据变化速度)——与之相对的是计算密集型,即处理器速度是其瓶颈。 软件系统中很重要的三个问题:
2323

2424
1. **可靠性**(Reliability):系统面临各种错误(硬件故障、软件故障、人为错误),仍可正常工作。
2525
2. **可扩展性**(Scalability):有合理的办法应对系统的增长(数据量、流量、复杂性)。
@@ -57,11 +57,11 @@ permalink: /pages/ea0d9bcb/
5757

5858
推文放在全局推文集合中,查询的时候做 join
5959

60-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630635645347-1e1e5660-4229-42a2-9bf9-da9850ff944b.png)
60+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/27b28b8fe3a5426d84dc7a4ca7788c4b.png)
6161

6262
推文插入到每个关注者的时间线中,「扇出」比较大,当有千万粉丝的大 V 发推压力大
6363

64-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630635669997-5d4951ae-5ec3-426d-9fc4-35a3cf579088.png)
64+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/df7bdf6df01e47bf8603104fe264a2e9.png)
6565

6666
推特从方案一变成了方案二,然后变成了两者结合的方式
6767

@@ -76,13 +76,13 @@ permalink: /pages/ea0d9bcb/
7676

7777
度量场景的响应时间,平均响应时间并不是一个合适的指标,因为它无法告诉有多少用户实际经历了多少延迟。最好使用百分位数,比如中位数(P50)、P95、P99、P999 等标识。
7878

79-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630635717226-c218a4b8-b6f9-4e35-8f10-549d65cf3e23.png)
79+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/601c8e754170423d93be4e453337a187.png)
8080

8181
测量客户端的响应时间非常重要(而不是服务端),比如会出现头部阻塞、网络延迟等。
8282

8383
实践中的百分位点,可以用一个滑动的时间窗口(比如 10 分钟)进行统计。可以对列表进行排序,效率低的话,考虑一下正向衰减,t-digest 等近似计算方法。
8484

85-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630635787568-a7885c39-997f-4edb-8fb9-79eff18467a2.png)
85+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/b414ebf931e341eb9ae97f1bc90f66da.png)
8686

8787
响应时间:中位数指标比平均响应时间更适合描述等待时间。
8888

@@ -133,7 +133,7 @@ Hibernate 这样的 **对象关系映射(ORM)** 框架则减少这个转换
133133

134134
对于一份简历而言,关系型模型描述一对多的关系需要多张表。
135135

136-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630640250504-01ef3f97-39be-4c23-9a9e-ce17c1cde6a9.png) 对于简历这样的数据结构,主要是一个自包含的文档,用 JSON 表示非常合适。JSON 相比于多表模式,有更好的局部性,可以一次查询出一个用户的所有信息。JSON 其实是树形层级结构。![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630640396753-c7fed755-b19b-4948-9c84-53d232548633.png)
136+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/3f452d6a34934f05923c84acb189eb85.png) 对于简历这样的数据结构,主要是一个自包含的文档,用 JSON 表示非常合适。JSON 相比于多表模式,有更好的局部性,可以一次查询出一个用户的所有信息。JSON 其实是树形层级结构。![](https://picture-bed-1251805293.file.myqcloud.com/1630640396753-c7fed755-b19b-4948-9c84-53d232548633.png)
137137

138138
#### 多对一和多对多的关系
139139

@@ -148,7 +148,7 @@ Hibernate 这样的 **对象关系映射(ORM)** 框架则减少这个转换
148148
- 组织和学校作为实体:组织、学校有各自的主页。
149149
- 推荐:用户可以推荐其他用户在自己的简历上。
150150

151-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630641413918-4cee1b5a-9bd2-4375-b86a-8d6d7183ee34.png)
151+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/dad17cb020344e55a3a76ccf783fd90a.png)
152152

153153
#### 文档数据库是否在重演历史?
154154

@@ -159,7 +159,7 @@ Hibernate 这样的 **对象关系映射(ORM)** 框架则减少这个转换
159159
- **关系模型(relational model)** - 后来,演变成了 SQL,并被广泛接受
160160
- **网络模型(network model)** - 最初很受关注,但最终被淡忘
161161

162-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1630641447595-4315fa0f-8338-4596-88d1-e423e040ac62.png)
162+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/3a841e6a40894307bba41388625d39c6.png)
163163

164164
##### 网络模型
165165

@@ -303,7 +303,7 @@ MapReduce 是一种编程模型,用于在许多机器上批量处理海量数
303303

304304
当旧版本的应用视图更新新版本的应用所写入的数据时,可能会丢失数据。
305305

306-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1633665482803-0f0f81b1-9abc-4171-b532-577637eecfe6.png)
306+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/382ba3b5200743e9837429e5f8a5b55a.png)
307307

308308
##### 归档数据
309309

docs/00.笔记/分布式/分布式理论/数据密集型应用系统设计笔记二.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ PostgreSQL 、Oracle 以及其他系统等支持这种复制方式。其主要
195195

196196
如果数据库总是以相同的顺序写入,则读取总是看到一致的序列,不会发生这种反常。然而,在许多分布式数据库中,不同的分区独立运行,因此不存在全局写入顺序。这就导致当用户从数据库中读数据时,可能会看到数据库的某部分旧值和另一部分新值。
197197

198-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1634010909693-6cc91fe9-aa0c-4e73-82c9-585646a15281.png)
198+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/b1900388e13e4d8e9de0eab5cafdb536.png)
199199

200200
一个解决方案是确保任何具有因果顺序关系的写入都交给一个分区来完成,但该方案效率很低。此外,还有一些算法来显示地跟踪事件因果关系(Happend Before)。
201201

@@ -223,7 +223,7 @@ PostgreSQL 、Oracle 以及其他系统等支持这种复制方式。其主要
223223

224224
在每个数据中心内,采用常规的主从复制;而在数据中心之间,由各数据中心的主节点来负责同其他数据中心的主节点进行数据的交换、更新。
225225

226-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1634094581707-9d2d4ff2-0d5d-43b2-8210-2cf7b2d16684.png)
226+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/6a56aed0df5a4af7b8c05c9c9db91a99.png)
227227

228228
主从复制和多主复制的差异:
229229

@@ -290,7 +290,7 @@ PostgreSQL 、Oracle 以及其他系统等支持这种复制方式。其主要
290290
- 只有两个领导者时,只有一个合理的拓扑:互相写入。
291291
- 当有两个以上的领导,拓扑很多样:
292292

293-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1634524795875-25e044c1-fc7d-47dc-a871-1af2fb3f5edd.png)
293+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/adeffd001f7a4cfca0092a7169c71425.png)
294294

295295
- 最普遍的是全部到全部;
296296
- MySQL 仅支持环形拓扑。
@@ -310,7 +310,7 @@ PostgreSQL 、Oracle 以及其他系统等支持这种复制方式。其主要
310310

311311
- 网络问题导致消息顺序错乱
312312

313-
![image.png](https://picture-bed-1251805293.file.myqcloud.com/1634525242078-5d57538c-fd13-4851-8962-c1934768e7fb.png)
313+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/53cd736f4aed4269bbd1789791e01574.png)
314314

315315
- 写入时添加时间戳是不够的。
316316
- 解决办法是**版本向量技术**
@@ -537,4 +537,4 @@ ACID,分别代表原子性( Atomicity ), 一致性( Consistency ),
537537

538538
## 参考资料
539539

540-
- [**数据密集型应用系统设计**](https://book.douban.com/subject/30329536/) - 这可能是目前最好的分布式存储书籍,强力推荐【进阶】
540+
- [**数据密集型应用系统设计**](https://book.douban.com/subject/30329536/) - 这可能是目前最好的分布式存储书籍,强力推荐【进阶】

docs/00.笔记/数据库/拉勾教育教程-姜承尧的MySQL实战宝典.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ permalink: /pages/11e409e5/
3333

3434
**整型类型**包括 `TINYINT``SMALLINT``MEDIUMINT``INT``BIGINT`。这些类型的存储空间和取值范围各不相同。
3535

36-
![image.png](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/MySQL%e5%ae%9e%e6%88%98%e5%ae%9d%e5%85%b8/assets/Cgp9HWCbM_CASy8bAAEA5n3G3Kc663.png)
36+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/a7740940813941048cc95c2896c83044.png)
3737

3838
**浮点类型**包括 `FLOAT``DOUBLE`,但不推荐在生产环境中使用,因为存在精度问题。MySQL 8.0.17 版本后,使用 `FLOAT``DOUBLE` 会抛出警告,未来可能会废弃。
3939

@@ -379,11 +379,11 @@ InnoDB 的数据是根据主键索引排序存储的,除了主键索引外,*
379379

380380
**一地三中心架构**
381381

382-
![5.png](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/MySQL%e5%ae%9e%e6%88%98%e5%ae%9d%e5%85%b8/assets/Cgp9HWDTCQyAFtFCAAF7qJpeUuM426.png)
382+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/7ff457c24809449b906fee115970ff82.png)
383383

384384
**三地五中心**
385385

386-
![6.png](https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/MySQL%e5%ae%9e%e6%88%98%e5%ae%9d%e5%85%b8/assets/CioPOWDTCROAOWeTAAF4gz8w6PY448.png)
386+
![](https://raw.githubusercontent.com/dunwu/images/master/archive/2026/02/b8eab3370c6d46339c2290fe25d0f5cc.png)
387387

388388
## 19 高可用套件:选择这么多,你该如何选?
389389

@@ -445,4 +445,4 @@ TDSQL MySQL 版([TDSQL for MySQL](https://cloud.tencent.com/product/dcdb))
445445
446446
## 27 分布式事务:我们到底要不要使用 2PC?
447447

448-
> 忽略
448+
> 忽略

0 commit comments

Comments
 (0)