Skip to content

Commit

Permalink
Merge branch 'master' into JavaGuide-fs
Browse files Browse the repository at this point in the history
  • Loading branch information
Snailclimb authored May 23, 2020
2 parents 03bf76e + 8398286 commit 037b9fd
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 38 deletions.
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Github用户如果访问速度缓慢的话,可以转移到[码云](https://git
- [系统设计](#系统设计)
- [必知](#必知)
- [常用框架](#常用框架)
- [Spring](#spring)
- [Spring](#springspringboot)
- [SpringBoot](#springboot)
- [MyBatis](#mybatis)
- [认证授权(JWT、SSO)](#认证授权)
Expand Down Expand Up @@ -228,9 +228,10 @@ Github用户如果访问速度缓慢的话,可以转移到[码云](https://git
3. **[SpringBoot 指南/常见面试题总结](https://github.com/Snailclimb/springboot-guide)**
3. **[Spring/Spring常用注解总结!安排!](./docs/system-design/framework/spring/spring-annotations.md)**
4. **[Spring事务总结](docs/system-design/framework/spring/spring-transaction.md)**
5. [Spring中 Bean 的作用域与生命周期](docs/system-design/framework/spring/SpringBean.md)
6. [SpringMVC 工作原理详解](docs/system-design/framework/spring/SpringMVC-Principle.md)
7. [Spring中都用到了那些设计模式?](docs/system-design/framework/spring/Spring-Design-Patterns.md)
5. [Spring IoC 和 AOP详解](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486938&idx=1&sn=c99ef0233f39a5ffc1b98c81e02dfcd4&chksm=cea24211f9d5cb07fa901183ba4d96187820713a72387788408040822ffb2ed575d28e953ce7&token=1666190828&lang=zh_CN#rd)
6. [Spring中 Bean 的作用域与生命周期](docs/system-design/framework/spring/SpringBean.md)
7. [SpringMVC 工作原理详解](docs/system-design/framework/spring/SpringMVC-Principle.md)
8. [Spring中都用到了那些设计模式?](docs/system-design/framework/spring/Spring-Design-Patterns.md)

#### MyBatis

Expand Down
2 changes: 2 additions & 0 deletions docs/database/Redis/Redis.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,8 @@ appendfsync no #让操作系统决定何时进行同步

为了兼顾数据和写入性能,用户可以考虑 appendfsync everysec 选项 ,让 Redis 每秒同步一次 AOF 文件,Redis 性能几乎没受到任何影响。而且这样即使出现系统崩溃,用户最多只会丢失一秒之内产生的数据。当硬盘忙于执行写入操作的时候,Redis 还会优雅的放慢自己的速度以便适应硬盘的最大写入速度。

[相关 Issue783:Redis的AOF 方式](https://github.com/Snailclimb/JavaGuide/issues/783)

**Redis 4.0 对于持久化机制的优化**

Redis 4.0 开始支持 RDB 和 AOF 的混合持久化(默认关闭,可以通过配置项 `aof-use-rdb-preamble` 开启)。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
> 1. **增加了复杂性:** a.每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,测试数据极为不方便;b.外键的主从关系是定的,假如那天需求有变化,数据库中的这个字段根本不需要和其他表有关联的话就会增加很多麻烦。
> 2. **增加了额外工作**: 数据库需要增加维护外键的工作,比如当我们做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,保证数据的的一致性和正确性,这样会不得不消耗资源;(个人觉得这个不是不用外键的原因,因为即使你不使用外键,你在应用层面也还是要保证的。所以,我觉得这个影响可以忽略不计。)
> 3. 外键还会因为需要请求对其他表内部加锁而容易出现死锁情况;
> 4. **对分不分表不友好** :因为分库分表下外键是无法生效的。
> 4. **对分库分表不友好** :因为分库分表下外键是无法生效的。
> 5. ......
我个人觉得上面这种回答不是特别的全面,只是说了外键存在的一个常见的问题。实际上,我们知道外键也是有很多好处的,比如:
Expand Down
Loading

0 comments on commit 037b9fd

Please sign in to comment.