Skip to content
6 changes: 3 additions & 3 deletions docs/database/MySQL.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ InnoDB 存储引擎在 **分布式事务** 的情况下一般会用到 **SERIALI

经典的数据库拆分方案,主库负责写,从库负责读;

#### 3. 垂直分区
#### 3. 垂直分区(待完善)

**根据数据库里面数据表的相关性进行拆分。** 例如,用户表中既有用户的登录信息又有用户的基本信息,可以将用户表拆分成两个单独的表,甚至放到单独的库做分库。

Expand All @@ -267,7 +267,7 @@ InnoDB 存储引擎在 **分布式事务** 的情况下一般会用到 **SERIALI
- **垂直拆分的优点:** 可以使得列数据变小,在查询时减少读取的Block数,减少I/O次数。此外,垂直分区可以简化表的结构,易于维护。
- **垂直拆分的缺点:** 主键会出现冗余,需要管理冗余列,并会引起Join操作,可以通过在应用层进行Join来解决。此外,垂直分区会让事务变得更加复杂;

#### 4. 水平分区
#### 4. 水平分区(待完善)

**保持数据表结构不变,通过某种策略存储数据分片。这样每一片数据分散到不同的表或者库中,达到了分布式的目的。 水平拆分可以支撑非常大的数据量。**

Expand All @@ -281,7 +281,7 @@ InnoDB 存储引擎在 **分布式事务** 的情况下一般会用到 **SERIALI

**下面补充一下数据库分片的两种常见方案:**

- **客户端代理:** **分片逻辑在应用端,封装在jar包中,通过修改或者封装JDBC层来实现。** 当当网的 **Sharding-JDBC** 、阿里的TDDL是两种比较常用的实现。
- **客户端代理:** **分片逻辑在应用端,封装在jar包中,通过修改或者封装JDBC层来实现。** 当当网的 **Sharding-JDBC** (推荐) 、阿里的TDDL是两种比较常用的实现。
- **中间件代理:** **在应用和数据中间加了一个代理层。分片逻辑统一维护在中间件服务中。** 我们现在谈的 **Mycat** 、360的Atlas、网易的DDB等等都是这种架构的实现。

详细内容可以参考: MySQL大表优化方案: [https://segmentfault.com/a/1190000006158186](https://segmentfault.com/a/1190000006158186)
Expand Down
2 changes: 1 addition & 1 deletion docs/java/basis/Java基础知识.md
Original file line number Diff line number Diff line change
Expand Up @@ -1225,7 +1225,7 @@ Java 代码在编译过程中,如果受检查异常没有被 `catch`/`throw`

Java 代码在编译过程中 ,我们即使不处理不受检查异常也可以正常通过编译。

`RuntimeException` 及其子类都统称为非受检查异常,例如:`NullPointException`、`NumberFormatException`(字符串转换为数字)、`ArrayIndexOutOfBoundsException`(数组越界)、`ClassCastException`(类型转换错误)、`ArithmeticException`(算术错误)等。
`RuntimeException` 及其子类都统称为非受检查异常,例如:`NullPoin​terException`、`NumberFormatException`(字符串转换为数字)、`ArrayIndexOutOfBoundsException`(数组越界)、`ClassCastException`(类型转换错误)、`ArithmeticException`(算术错误)等。

#### 3.2.2. Throwable 类常用方法

Expand Down
Loading