mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-16 18:10:13 +08:00
chore: update links
This commit is contained in:
parent
0159cf184d
commit
e6090fa544
@ -125,7 +125,7 @@ QQ 飞车这款戏当时还挺火的,很多 90 后的小伙伴应该比较熟
|
|||||||
|
|
||||||
大学生活过的还是挺丰富的,我会偶尔通宵敲代码,也会偶尔半夜发疯跑出去和同学一起走走古城墙、去网吧锤一夜的 LOL。
|
大学生活过的还是挺丰富的,我会偶尔通宵敲代码,也会偶尔半夜发疯跑出去和同学一起走走古城墙、去网吧锤一夜的 LOL。
|
||||||
|
|
||||||
大学生活专门写过一篇文章介绍:[害,毕业三年了!](https://javaguide.cn/about-the-author/my-college-life.html) 。
|
大学生活专门写过一篇文章介绍:[害,毕业三年了!](./my-college-life.md) 。
|
||||||
|
|
||||||
## 总结
|
## 总结
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ category: 走近作者
|
|||||||
|
|
||||||
## 我坚持写了多久博客?
|
## 我坚持写了多久博客?
|
||||||
|
|
||||||
时间真快啊!我自己是从大二开始写博客的。那时候就是随意地在博客平台上发发自己的学习笔记和自己写的程序。就比如 [谢希仁老师的《计算机网络》内容总结](https://javaguide.cn/cs-basics/network/%E8%B0%A2%E5%B8%8C%E4%BB%81%E8%80%81%E5%B8%88%E7%9A%84%E3%80%8A%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E3%80%8B%E5%86%85%E5%AE%B9%E6%80%BB%E7%BB%93/) 这篇文章就是我在大二学习计算机网络这门课的时候对照着教材总结的。
|
时间真快啊!我自己是从大二开始写博客的。那时候就是随意地在博客平台上发发自己的学习笔记和自己写的程序。就比如 [谢希仁老师的《计算机网络》内容总结](../cs-basics/network/computer-network-xiexiren-summary.md) 这篇文章就是我在大二学习计算机网络这门课的时候对照着教材总结的。
|
||||||
|
|
||||||
身边也有很多小伙伴经常问我:“我现在写博客还晚么?”
|
身边也有很多小伙伴经常问我:“我现在写博客还晚么?”
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ category: 走近作者
|
|||||||
|
|
||||||
## 为什么自称 Guide?
|
## 为什么自称 Guide?
|
||||||
|
|
||||||
可能是因为我的项目名字叫做 JavaGuide , 所以导致有很多人称呼我为 **Guide哥**。
|
可能是因为我的项目名字叫做 JavaGuide , 所以导致有很多人称呼我为 **Guide 哥**。
|
||||||
|
|
||||||
后面,为了读者更方便称呼,我就将自己的笔名改成了 **Guide**。
|
后面,为了读者更方便称呼,我就将自己的笔名改成了 **Guide**。
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ tag:
|
|||||||
|
|
||||||
最重要的是一定要重视 Markdown 规范,不然内容再好也会显得不专业。
|
最重要的是一定要重视 Markdown 规范,不然内容再好也会显得不专业。
|
||||||
|
|
||||||
Markdown 规范请参考:**<https://javaguide.cn/javaguide/contribution-guideline.html>** (很重要,尽量按照规范来,对你工作中写文档会非常有帮助)
|
详见 [Markdown 规范](../javaguide/contribution-guideline.md) (很重要,尽量按照规范来,对你工作中写文档会非常有帮助)
|
||||||
|
|
||||||
## 有没有什么写作技巧分享?
|
## 有没有什么写作技巧分享?
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ OSI 七层模型虽然失败了,但是却提供了很多不错的理论基础
|
|||||||
- **RTP(Real-time Transport Protocol,实时传输协议)**:通常基于 UDP 协议,但也支持 TCP 协议。它提供了端到端的实时传输数据的功能,但不包含资源预留存、不保证实时传输质量,这些功能由 WebRTC 实现。
|
- **RTP(Real-time Transport Protocol,实时传输协议)**:通常基于 UDP 协议,但也支持 TCP 协议。它提供了端到端的实时传输数据的功能,但不包含资源预留存、不保证实时传输质量,这些功能由 WebRTC 实现。
|
||||||
- **DNS(Domain Name System,域名管理系统)**: 基于 UDP 协议,用于解决域名和 IP 地址的映射问题。
|
- **DNS(Domain Name System,域名管理系统)**: 基于 UDP 协议,用于解决域名和 IP 地址的映射问题。
|
||||||
|
|
||||||
关于这些协议的详细介绍请看 [应用层常见协议总结(应用层)](https://javaguide.cn/cs-basics/network/application-layer-protocol.html) 这篇文章。
|
关于这些协议的详细介绍请看 [应用层常见协议总结(应用层)](./application-layer-protocol.md) 这篇文章。
|
||||||
|
|
||||||
### 传输层(Transport layer)
|
### 传输层(Transport layer)
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ tag:
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
关于每一层作用的详细介绍,请看 [OSI 和 TCP/IP 网络分层模型详解(基础)](https://javaguide.cn/cs-basics/network/osi-and-tcp-ip-model.html) 这篇文章。
|
关于每一层作用的详细介绍,请看 [OSI 和 TCP/IP 网络分层模型详解(基础)](./osi-and-tcp-ip-model.md) 这篇文章。
|
||||||
|
|
||||||
#### 为什么网络要分层?
|
#### 为什么网络要分层?
|
||||||
|
|
||||||
@ -230,7 +230,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL
|
|||||||
|
|
||||||
### Cookie 和 Session 有什么区别?
|
### Cookie 和 Session 有什么区别?
|
||||||
|
|
||||||
准确点来说,这个问题属于认证授权的范畴,你可以在 [认证授权基础概念详解](https://javaguide.cn/system-design/security/basis-of-authority-certification.html) 这篇文章中找到详细的答案。
|
准确点来说,这个问题属于认证授权的范畴,你可以在 [认证授权基础概念详解](../../system-design/security/basis-of-authority-certification.md) 这篇文章中找到详细的答案。
|
||||||
|
|
||||||
## PING
|
## PING
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ tag:
|
|||||||
- Elasticsearch
|
- Elasticsearch
|
||||||
---
|
---
|
||||||
|
|
||||||
**Elasticsearch** 相关的面试题为我的[知识星球](https://javaguide.cn/about-the-author/zhishixingqiu-two-years.html)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html)中。
|
**Elasticsearch** 相关的面试题为我的[知识星球](../../about-the-author/zhishixingqiu-two-years.md)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](../../zhuanlan/java-mian-shi-zhi-bei.md)中。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ MongoDB 聚合管道由多个阶段组成,每个阶段在文档通过管道时
|
|||||||
| \$unwind | 拆分操作符,用于将数组中的每一个值拆分为单独的文档 |
|
| \$unwind | 拆分操作符,用于将数组中的每一个值拆分为单独的文档 |
|
||||||
| \$lookup | 连接操作符,用于连接同一个数据库中另一个集合,并获取指定的文档,类似于 populate |
|
| \$lookup | 连接操作符,用于连接同一个数据库中另一个集合,并获取指定的文档,类似于 populate |
|
||||||
|
|
||||||
更多操作符介绍详见官方文档:https://docs.mongodb.com/manual/reference/operator/aggregation/
|
更多操作符介绍详见官方文档:<https://docs.mongodb.com/manual/reference/operator/aggregation/>
|
||||||
|
|
||||||
阶段操作符用于 `db.collection.aggregate` 方法里面,数组参数中的第一层。
|
阶段操作符用于 `db.collection.aggregate` 方法里面,数组参数中的第一层。
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ db.orders.aggregate([
|
|||||||
- **隔离性**(`Isolation`):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的。WiredTiger 存储引擎支持读未提交( read-uncommitted )、读已提交( read-committed )和快照( snapshot )隔离,MongoDB 启动时默认选快照隔离。在不同隔离级别下,一个事务的生命周期内,可能出现脏读、不可重复读、幻读等现象。
|
- **隔离性**(`Isolation`):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的。WiredTiger 存储引擎支持读未提交( read-uncommitted )、读已提交( read-committed )和快照( snapshot )隔离,MongoDB 启动时默认选快照隔离。在不同隔离级别下,一个事务的生命周期内,可能出现脏读、不可重复读、幻读等现象。
|
||||||
- **持久性**(`Durability`):一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
|
- **持久性**(`Durability`):一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
|
||||||
|
|
||||||
关于事务的详细介绍这篇文章就不多说了,感兴趣的可以看看我写的[MySQL 常见面试题总结](https://javaguide.cn/database/mysql/mysql-questions-01.html)这篇文章,里面有详细介绍到。
|
关于事务的详细介绍这篇文章就不多说了,感兴趣的可以看看我写的[MySQL 常见面试题总结](../mysql/mysql-questions-01.md)这篇文章,里面有详细介绍到。
|
||||||
|
|
||||||
MongoDB 单文档原生支持原子性,也具备事务的特性。当谈论 MongoDB 事务的时候,通常指的是 **多文档** 。MongoDB 4.0 加入了对多文档 ACID 事务的支持,但只支持复制集部署模式下的 ACID 事务,也就是说事务的作用域限制为一个副本集内。MongoDB 4.2 引入了 **分布式事务** ,增加了对分片集群上多文档事务的支持,并合并了对副本集上多文档事务的现有支持。
|
MongoDB 单文档原生支持原子性,也具备事务的特性。当谈论 MongoDB 事务的时候,通常指的是 **多文档** 。MongoDB 4.0 加入了对多文档 ACID 事务的支持,但只支持复制集部署模式下的 ACID 事务,也就是说事务的作用域限制为一个副本集内。MongoDB 4.2 引入了 **分布式事务** ,增加了对分片集群上多文档事务的支持,并合并了对副本集上多文档事务的现有支持。
|
||||||
|
|
||||||
@ -276,9 +276,9 @@ WiredTiger 日志也会被压缩,默认使用的也是 Snappy 压缩算法。
|
|||||||
|
|
||||||
## 参考
|
## 参考
|
||||||
|
|
||||||
- MongoDB 官方文档(主要参考资料,以官方文档为准):https://www.mongodb.com/docs/manual/
|
- MongoDB 官方文档(主要参考资料,以官方文档为准):<https://www.mongodb.com/docs/manual/>
|
||||||
- 《MongoDB 权威指南》
|
- 《MongoDB 权威指南》
|
||||||
- 技术干货| MongoDB 事务原理 - MongoDB 中文社区:https://mongoing.com/archives/82187
|
- 技术干货| MongoDB 事务原理 - MongoDB 中文社区:<https://mongoing.com/archives/82187>
|
||||||
- Transactions - MongoDB 官方文档:https://www.mongodb.com/docs/manual/core/transactions/
|
- Transactions - MongoDB 官方文档:<https://www.mongodb.com/docs/manual/core/transactions/>
|
||||||
- WiredTiger Storage Engine - MongoDB 官方文档:https://www.mongodb.com/docs/manual/core/wiredtiger/
|
- WiredTiger Storage Engine - MongoDB 官方文档:<https://www.mongodb.com/docs/manual/core/wiredtiger/>
|
||||||
- WiredTiger 存储引擎之一:基础数据结构分析:https://mongoing.com/topic/archives-35143
|
- WiredTiger 存储引擎之一:基础数据结构分析:<https://mongoing.com/topic/archives-35143>
|
||||||
|
@ -263,11 +263,11 @@ Rebalance 操作是比较耗费系统资源的,我们可以通过在业务低
|
|||||||
|
|
||||||
## 参考
|
## 参考
|
||||||
|
|
||||||
- MongoDB 官方文档(主要参考资料,以官方文档为准):https://www.mongodb.com/docs/manual/
|
- MongoDB 官方文档(主要参考资料,以官方文档为准):<https://www.mongodb.com/docs/manual/>
|
||||||
- 《MongoDB 权威指南》
|
- 《MongoDB 权威指南》
|
||||||
- Indexes - MongoDB 官方文档:https://www.mongodb.com/docs/manual/indexes/
|
- Indexes - MongoDB 官方文档:<https://www.mongodb.com/docs/manual/indexes/>
|
||||||
- MongoDB - 索引知识 - 程序员翔仔 - 2022:https://fatedeity.cn/posts/database/mongodb-index-knowledge.html
|
- MongoDB - 索引知识 - 程序员翔仔 - 2022:<https://fatedeity.cn/posts/database/mongodb-index-knowledge.html>
|
||||||
- MongoDB - 索引: https://www.cnblogs.com/Neeo/articles/14325130.html
|
- MongoDB - 索引: <https://www.cnblogs.com/Neeo/articles/14325130.html>
|
||||||
- Sharding - MongoDB 官方文档:https://www.mongodb.com/docs/manual/sharding/
|
- Sharding - MongoDB 官方文档:<https://www.mongodb.com/docs/manual/sharding/>
|
||||||
- MongoDB 分片集群介绍 - 阿里云文档:https://help.aliyun.com/document_detail/64561.html
|
- MongoDB 分片集群介绍 - 阿里云文档:<https://help.aliyun.com/document_detail/64561.html>
|
||||||
- 分片集群使用注意事项 - - 腾讯云文档:https://cloud.tencent.com/document/product/240/44611
|
- 分片集群使用注意事项 - - 腾讯云文档:<https://cloud.tencent.com/document/product/240/44611>
|
||||||
|
@ -9,7 +9,7 @@ tag:
|
|||||||
|
|
||||||
### 一致性非锁定读
|
### 一致性非锁定读
|
||||||
|
|
||||||
对于 [**一致性非锁定读(Consistent Nonlocking Reads)** ](https://dev.mysql.com/doc/refman/5.7/en/innodb-consistent-read.html)的实现,通常做法是加一个版本号或者时间戳字段,在更新数据的同时版本号 + 1 或者更新时间戳。查询时,将当前可见的版本号与对应记录的版本号进行比对,如果记录的版本小于可见版本,则表示该记录可见
|
对于 [**一致性非锁定读(Consistent Nonlocking Reads)**](https://dev.mysql.com/doc/refman/5.7/en/innodb-consistent-read.html)的实现,通常做法是加一个版本号或者时间戳字段,在更新数据的同时版本号 + 1 或者更新时间戳。查询时,将当前可见的版本号与对应记录的版本号进行比对,如果记录的版本小于可见版本,则表示该记录可见
|
||||||
|
|
||||||
在 `InnoDB` 存储引擎中,[多版本控制 (multi versioning)](https://dev.mysql.com/doc/refman/5.7/en/innodb-multi-versioning.html) 就是对非锁定读的实现。如果读取的行正在执行 `DELETE` 或 `UPDATE` 操作,这时读取操作不会去等待行上锁的释放。相反地,`InnoDB` 存储引擎会去读取行的一个快照数据,对于这种读取历史数据的方式,我们叫它快照读 (snapshot read)
|
在 `InnoDB` 存储引擎中,[多版本控制 (multi versioning)](https://dev.mysql.com/doc/refman/5.7/en/innodb-multi-versioning.html) 就是对非锁定读的实现。如果读取的行正在执行 `DELETE` 或 `UPDATE` 操作,这时读取操作不会去等待行上锁的释放。相反地,`InnoDB` 存储引擎会去读取行的一个快照数据,对于这种读取历史数据的方式,我们叫它快照读 (snapshot read)
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ InnoDB 支持事务,支持行级锁,更好的恢复性,高并发下性能
|
|||||||
参考文章:
|
参考文章:
|
||||||
|
|
||||||
- [MySQL 字符集不一致导致索引失效的一个真实案例](https://blog.csdn.net/horses/article/details/107243447)
|
- [MySQL 字符集不一致导致索引失效的一个真实案例](https://blog.csdn.net/horses/article/details/107243447)
|
||||||
- [MySQL 字符集详解](https://javaguide.cn/database/character-set.html)
|
- [MySQL 字符集详解](../character-set.md)
|
||||||
|
|
||||||
### 所有表和字段都需要添加注释
|
### 所有表和字段都需要添加注释
|
||||||
|
|
||||||
|
@ -286,7 +286,7 @@ ALTER TABLE `cus_order` ADD INDEX id_score_name(score, name);
|
|||||||
|
|
||||||
通过 `Extra` 这一列的 `Using index` ,说明这条 SQL 语句成功使用了覆盖索引。
|
通过 `Extra` 这一列的 `Using index` ,说明这条 SQL 语句成功使用了覆盖索引。
|
||||||
|
|
||||||
关于 `EXPLAIN` 命令的详细介绍请看:[MySQL 执行计划分析](https://javaguide.cn/database/mysql/mysql-query-execution-plan.html)这篇文章。
|
关于 `EXPLAIN` 命令的详细介绍请看:[MySQL 执行计划分析](./mysql-query-execution-plan.md)这篇文章。
|
||||||
|
|
||||||
### 联合索引
|
### 联合索引
|
||||||
|
|
||||||
@ -351,7 +351,7 @@ ALTER TABLE `cus_order` ADD INDEX id_score_name(score, name);
|
|||||||
- 在索引列上进行计算、函数、类型转换等操作;
|
- 在索引列上进行计算、函数、类型转换等操作;
|
||||||
- 以 `%` 开头的 LIKE 查询比如 `like '%abc'`;
|
- 以 `%` 开头的 LIKE 查询比如 `like '%abc'`;
|
||||||
- 查询条件中使用 or,且 or 的前后条件中有一个列没有索引,涉及的索引都不会被使用到;
|
- 查询条件中使用 or,且 or 的前后条件中有一个列没有索引,涉及的索引都不会被使用到;
|
||||||
- 发生[隐式转换](https://javaguide.cn/database/mysql/index-invalidation-caused-by-implicit-conversion.html);
|
- 发生[隐式转换](./index-invalidation-caused-by-implicit-conversion.md);
|
||||||
- ......
|
- ......
|
||||||
|
|
||||||
### 删除长期未使用的索引
|
### 删除长期未使用的索引
|
||||||
@ -395,4 +395,4 @@ mysql> EXPLAIN SELECT `score`,`name` FROM `cus_order` ORDER BY `score` DESC;
|
|||||||
| filtered | 按表条件过滤后,留存的记录数的百分比 |
|
| filtered | 按表条件过滤后,留存的记录数的百分比 |
|
||||||
| Extra | 附加信息 |
|
| Extra | 附加信息 |
|
||||||
|
|
||||||
篇幅问题,我这里只是简单介绍了一下 MySQL 执行计划,详细介绍请看:[MySQL 执行计划分析](https://javaguide.cn/database/mysql/mysql-query-execution-plan.html)这篇文章。
|
篇幅问题,我这里只是简单介绍了一下 MySQL 执行计划,详细介绍请看:[MySQL 执行计划分析](./mysql-query-execution-plan.md)这篇文章。
|
||||||
|
@ -201,6 +201,6 @@ MySQL 中的查询缓存虽然能够提升数据库的查询性能,但是查
|
|||||||
## 参考
|
## 参考
|
||||||
|
|
||||||
- 《高性能 MySQL》
|
- 《高性能 MySQL》
|
||||||
- MySQL 缓存机制:https://zhuanlan.zhihu.com/p/55947158
|
- MySQL 缓存机制:<https://zhuanlan.zhihu.com/p/55947158>
|
||||||
- RDS MySQL 查询缓存(Query Cache)的设置和使用 - 阿里元云数据库 RDS 文档:https://help.aliyun.com/document_detail/41717.html
|
- RDS MySQL 查询缓存(Query Cache)的设置和使用 - 阿里元云数据库 RDS 文档:<https://help.aliyun.com/document_detail/41717.html>
|
||||||
- 8.10.3 The MySQL Query Cache - MySQL 官方文档:https://dev.mysql.com/doc/refman/5.7/en/query-cache.html
|
- 8.10.3 The MySQL Query Cache - MySQL 官方文档:<https://dev.mysql.com/doc/refman/5.7/en/query-cache.html>
|
||||||
|
@ -132,8 +132,8 @@ mysql> SHOW VARIABLES LIKE '%storage_engine%';
|
|||||||
|
|
||||||
如果你想要深入了解每个存储引擎以及它们之间的区别,推荐你去阅读以下 MySQL 官方文档对应的介绍(面试不会问这么细,了解即可):
|
如果你想要深入了解每个存储引擎以及它们之间的区别,推荐你去阅读以下 MySQL 官方文档对应的介绍(面试不会问这么细,了解即可):
|
||||||
|
|
||||||
- InnoDB 存储引擎详细介绍:https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html 。
|
- InnoDB 存储引擎详细介绍:<https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html> 。
|
||||||
- 其他存储引擎详细介绍:https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html 。
|
- 其他存储引擎详细介绍:<https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html> 。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -143,7 +143,7 @@ MySQL 存储引擎采用的是 **插件式架构** ,支持多种存储引擎
|
|||||||
|
|
||||||
并且,你还可以根据 MySQL 定义的存储引擎实现标准接口来编写一个属于自己的存储引擎。这些非官方提供的存储引擎可以称为第三方存储引擎,区别于官方存储引擎。像目前最常用的 InnoDB 其实刚开始就是一个第三方存储引擎,后面由于过于优秀,其被 Oracle 直接收购了。
|
并且,你还可以根据 MySQL 定义的存储引擎实现标准接口来编写一个属于自己的存储引擎。这些非官方提供的存储引擎可以称为第三方存储引擎,区别于官方存储引擎。像目前最常用的 InnoDB 其实刚开始就是一个第三方存储引擎,后面由于过于优秀,其被 Oracle 直接收购了。
|
||||||
|
|
||||||
MySQL 官方文档也有介绍到如何编写一个自定义存储引擎,地址:https://dev.mysql.com/doc/internals/en/custom-engine.html 。
|
MySQL 官方文档也有介绍到如何编写一个自定义存储引擎,地址:<https://dev.mysql.com/doc/internals/en/custom-engine.html> 。
|
||||||
|
|
||||||
### MyISAM 和 InnoDB 有什么区别?
|
### MyISAM 和 InnoDB 有什么区别?
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ MyISAM 不提供事务支持。
|
|||||||
|
|
||||||
InnoDB 提供事务支持,实现了 SQL 标准定义了四个隔离级别,具有提交(commit)和回滚(rollback)事务的能力。并且,InnoDB 默认使用的 REPEATABLE-READ(可重读)隔离级别是可以解决幻读问题发生的(基于 MVCC 和 Next-Key Lock)。
|
InnoDB 提供事务支持,实现了 SQL 标准定义了四个隔离级别,具有提交(commit)和回滚(rollback)事务的能力。并且,InnoDB 默认使用的 REPEATABLE-READ(可重读)隔离级别是可以解决幻读问题发生的(基于 MVCC 和 Next-Key Lock)。
|
||||||
|
|
||||||
关于 MySQL 事务的详细介绍,可以看看我写的这篇文章:[MySQL 事务隔离级别详解](https://javaguide.cn/database/mysql/transaction-isolation-level.html)。
|
关于 MySQL 事务的详细介绍,可以看看我写的这篇文章:[MySQL 事务隔离级别详解](./transaction-isolation-level.md)。
|
||||||
|
|
||||||
**3.是否支持外键**
|
**3.是否支持外键**
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ MyISAM 不支持,而 InnoDB 支持。
|
|||||||
|
|
||||||
InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索引文件和数据文件是分离的,其表数据文件本身就是按 B+Tree 组织的一个索引结构,树的叶节点 data 域保存了完整的数据记录。
|
InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索引文件和数据文件是分离的,其表数据文件本身就是按 B+Tree 组织的一个索引结构,树的叶节点 data 域保存了完整的数据记录。
|
||||||
|
|
||||||
详细区别,推荐你看看我写的这篇文章:[MySQL 索引详解](https://javaguide.cn/database/mysql/mysql-index.html)。
|
详细区别,推荐你看看我写的这篇文章:[MySQL 索引详解](./mysql-index.md)。
|
||||||
|
|
||||||
**7.性能有差别。**
|
**7.性能有差别。**
|
||||||
|
|
||||||
@ -237,7 +237,7 @@ InnoDB 的性能比 MyISAM 更强大,不管是在读写混合模式下还是
|
|||||||
|
|
||||||
## MySQL 索引
|
## MySQL 索引
|
||||||
|
|
||||||
MySQL 索引相关的问题比较多,对于面试和工作都比较重要,于是,我单独抽了一篇文章专门来总结 MySQL 索引相关的知识点和问题:[MySQL 索引详解](https://javaguide.cn/database/mysql/mysql-index.html) 。
|
MySQL 索引相关的问题比较多,对于面试和工作都比较重要,于是,我单独抽了一篇文章专门来总结 MySQL 索引相关的知识点和问题:[MySQL 索引详解](./mysql-index.md) 。
|
||||||
|
|
||||||
## MySQL 查询缓存
|
## MySQL 查询缓存
|
||||||
|
|
||||||
@ -282,7 +282,7 @@ SELECT sql_no_cache COUNT(*) FROM usr;
|
|||||||
- undo log 如何保证事务的原子性?
|
- undo log 如何保证事务的原子性?
|
||||||
- ......
|
- ......
|
||||||
|
|
||||||
上诉问题的答案可以在[《Java 面试指北》(付费)](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html) 的 **「技术面试题篇」** 中找到。
|
上诉问题的答案可以在[《Java 面试指北》(付费)](../../zhuanlan/java-mian-shi-zhi-bei.md) 的 **「技术面试题篇」** 中找到。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -420,7 +420,7 @@ MVCC 在 MySQL 中实现所依赖的手段主要是: **隐藏字段、read view
|
|||||||
- undo log : undo log 用于记录某行数据的多个版本的数据。
|
- undo log : undo log 用于记录某行数据的多个版本的数据。
|
||||||
- read view 和 隐藏字段 : 用来判断当前版本数据的可见性。
|
- read view 和 隐藏字段 : 用来判断当前版本数据的可见性。
|
||||||
|
|
||||||
关于 InnoDB 对 MVCC 的具体实现可以看这篇文章:[InnoDB 存储引擎对 MVCC 的实现](https://javaguide.cn/database/mysql/innodb-implementation-of-mvcc.html) 。
|
关于 InnoDB 对 MVCC 的具体实现可以看这篇文章:[InnoDB 存储引擎对 MVCC 的实现](./innodb-implementation-of-mvcc.md) 。
|
||||||
|
|
||||||
### SQL 标准定义了哪些事务隔离级别?
|
### SQL 标准定义了哪些事务隔离级别?
|
||||||
|
|
||||||
@ -459,7 +459,7 @@ mysql> SELECT @@tx_isolation;
|
|||||||
+-----------------+
|
+-----------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
关于 MySQL 事务隔离级别的详细介绍,可以看看我写的这篇文章:[MySQL 事务隔离级别详解](https://javaguide.cn/database/mysql/transaction-isolation-level.html)。
|
关于 MySQL 事务隔离级别的详细介绍,可以看看我写的这篇文章:[MySQL 事务隔离级别详解](./transaction-isolation-level.md)。
|
||||||
|
|
||||||
## MySQL 锁
|
## MySQL 锁
|
||||||
|
|
||||||
@ -645,7 +645,7 @@ MySQL 提供了两个方法来处理 ip 地址
|
|||||||
|
|
||||||
### 有哪些常见的 SQL 优化手段?
|
### 有哪些常见的 SQL 优化手段?
|
||||||
|
|
||||||
[《Java 面试指北》(付费)](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html) 的 **「技术面试题篇」** 有一篇文章详细介绍了常见的 SQL 优化手段,非常全面,清晰易懂!
|
[《Java 面试指北》(付费)](../../zhuanlan/java-mian-shi-zhi-bei.md) 的 **「技术面试题篇」** 有一篇文章详细介绍了常见的 SQL 优化手段,非常全面,清晰易懂!
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -688,15 +688,15 @@ mysql> EXPLAIN SELECT `score`,`name` FROM `cus_order` ORDER BY `score` DESC;
|
|||||||
| filtered | 按表条件过滤后,留存的记录数的百分比 |
|
| filtered | 按表条件过滤后,留存的记录数的百分比 |
|
||||||
| Extra | 附加信息 |
|
| Extra | 附加信息 |
|
||||||
|
|
||||||
篇幅问题,我这里只是简单介绍了一下 MySQL 执行计划,详细介绍请看:[SQL 的执行计划](https://javaguide.cn/database/mysql/mysql-query-execution-plan.html)这篇文章。
|
篇幅问题,我这里只是简单介绍了一下 MySQL 执行计划,详细介绍请看:[SQL 的执行计划](./mysql-query-execution-plan.md)这篇文章。
|
||||||
|
|
||||||
### 读写分离和分库分表了解吗?
|
### 读写分离和分库分表了解吗?
|
||||||
|
|
||||||
读写分离和分库分表相关的问题比较多,于是,我单独写了一篇文章来介绍:[读写分离和分库分表详解](https://javaguide.cn/high-performance/read-and-write-separation-and-library-subtable.html)。
|
读写分离和分库分表相关的问题比较多,于是,我单独写了一篇文章来介绍:[读写分离和分库分表详解](../../high-performance/read-and-write-separation-and-library-subtable.md)。
|
||||||
|
|
||||||
## MySQL 学习资料推荐
|
## MySQL 学习资料推荐
|
||||||
|
|
||||||
**书籍推荐**:参见:[https://javaguide.cn/books/database.html#mysql](https://javaguide.cn/books/database.html#mysql) 。
|
[**书籍推荐**](../../books/database.md#mysql) 。
|
||||||
|
|
||||||
**文章推荐** :
|
**文章推荐** :
|
||||||
|
|
||||||
@ -711,12 +711,12 @@ mysql> EXPLAIN SELECT `score`,`name` FROM `cus_order` ORDER BY `score` DESC;
|
|||||||
|
|
||||||
- 《高性能 MySQL》第 7 章 MySQL 高级特性
|
- 《高性能 MySQL》第 7 章 MySQL 高级特性
|
||||||
- 《MySQL 技术内幕 InnoDB 存储引擎》第 6 章 锁
|
- 《MySQL 技术内幕 InnoDB 存储引擎》第 6 章 锁
|
||||||
- Relational Database:https://www.omnisci.com/technical-glossary/relational-database
|
- Relational Database:<https://www.omnisci.com/technical-glossary/relational-database>
|
||||||
- 技术分享 | 隔离级别:正确理解幻读:https://opensource.actionsky.com/20210818-mysql/
|
- 技术分享 | 隔离级别:正确理解幻读:<https://opensource.actionsky.com/20210818-mysql/>
|
||||||
- MySQL Server Logs - MySQL 5.7 Reference Manual:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html
|
- MySQL Server Logs - MySQL 5.7 Reference Manual:<https://dev.mysql.com/doc/refman/5.7/en/server-logs.html>
|
||||||
- Redo Log - MySQL 5.7 Reference Manual:https://dev.mysql.com/doc/refman/5.7/en/innodb-redo-log.html
|
- Redo Log - MySQL 5.7 Reference Manual:<https://dev.mysql.com/doc/refman/5.7/en/innodb-redo-log.html>
|
||||||
- Locking Reads - MySQL 5.7 Reference Manual:https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html
|
- Locking Reads - MySQL 5.7 Reference Manual:<https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html>
|
||||||
- 深入理解数据库行锁与表锁 https://zhuanlan.zhihu.com/p/52678870
|
- 深入理解数据库行锁与表锁 <https://zhuanlan.zhihu.com/p/52678870>
|
||||||
- 详解 MySQL InnoDB 中意向锁的作用:https://juejin.cn/post/6844903666332368909
|
- 详解 MySQL InnoDB 中意向锁的作用:<https://juejin.cn/post/6844903666332368909>
|
||||||
- 深入剖析 MySQL 自增锁:https://juejin.cn/post/6968420054287253540
|
- 深入剖析 MySQL 自增锁:<https://juejin.cn/post/6968420054287253540>
|
||||||
- 在数据库中不可重复读和幻读到底应该怎么分?:https://www.zhihu.com/question/392569386
|
- 在数据库中不可重复读和幻读到底应该怎么分?:<https://www.zhihu.com/question/392569386>
|
||||||
|
@ -5,7 +5,7 @@ tag:
|
|||||||
- Redis
|
- Redis
|
||||||
---
|
---
|
||||||
|
|
||||||
**缓存基础** 相关的面试题为我的[知识星球](https://javaguide.cn/about-the-author/zhishixingqiu-two-years.html)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html)中。
|
**缓存基础** 相关的面试题为我的 [知识星球](../../about-the-author/zhishixingqiu-two-years.md)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](../../zhuanlan/java-mian-shi-zhi-bei.md)中。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ tag:
|
|||||||
- Redis
|
- Redis
|
||||||
---
|
---
|
||||||
|
|
||||||
**Redis 集群** 相关的面试题为我的[知识星球](https://javaguide.cn/about-the-author/zhishixingqiu-two-years.html)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html)中。
|
**Redis 集群** 相关的面试题为我的 [知识星球](../../about-the-author/zhishixingqiu-two-years.md)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](../../zhuanlan/java-mian-shi-zhi-bei.md)中。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user