1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00
This commit is contained in:
Snailclimb 2019-02-18 22:59:57 +08:00
commit 9f80f82d71
2 changed files with 2 additions and 4 deletions

View File

@ -37,7 +37,6 @@
- [MySQL](#mysql)
- [Redis](#redis)
- [:punch: 架构](#punch-架构)
- [分布式相关](#分布式相关)
- [:musical_note: 面试必备](#musical_note-面试必备)
- [备战春招/秋招系列](#备战春招秋招系列)
- [最最最常见的Java面试题总结](#最最最常见的java面试题总结)

View File

@ -136,8 +136,7 @@ Java面试通关手册Java学习指南欢迎Star会一直完善下去
1. **限定数据的范围:** 务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内。;
2. **读/写分离:** 经典的数据库拆分方案,主库负责写,从库负责读;
3. **缓存:** 使用MySQL的缓存另外对重量级、更新少的数据可以考虑使用应用级别的缓存
4. **垂直分区:**
3 . **垂直分区:**
**根据数据库里面数据表的相关性进行拆分。** 例如,用户表中既有用户的登录信息又有用户的基本信息,可以将用户表拆分成两个单独的表,甚至放到单独的库做分库。
@ -148,7 +147,7 @@ Java面试通关手册Java学习指南欢迎Star会一直完善下去
**垂直拆分的缺点:** 主键会出现冗余需要管理冗余列并会引起Join操作可以通过在应用层进行Join来解决。此外垂直分区会让事务变得更加复杂
5. **水平分区:**
4. **水平分区:**
**保持数据表结构不变,通过某种策略存储数据分片。这样每一片数据分散到不同的表或者库中,达到了分布式的目的。 水平拆分可以支撑非常大的数据量。**