mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-08-14 05:21:42 +08:00
Compare commits
No commits in common. "e129b380ce23860403319a3217d5e837251e298b" and "e5db6e00a7a2cd1d090a58b0347c9e94c6db285d" have entirely different histories.
e129b380ce
...
e5db6e00a7
@ -191,10 +191,6 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
|
|||||||
- [数据库基础知识总结](./docs/database/basis.md)
|
- [数据库基础知识总结](./docs/database/basis.md)
|
||||||
- [NoSQL 基础知识总结](./docs/database/nosql.md)
|
- [NoSQL 基础知识总结](./docs/database/nosql.md)
|
||||||
- [字符集详解](./docs/database/character-set.md)
|
- [字符集详解](./docs/database/character-set.md)
|
||||||
- SQL :
|
|
||||||
- [SQL语法基础知识总结](./docs/database/sql/sql-syntax-summary.md)
|
|
||||||
- [SQL常见面试题总结](./docs/database/sql/sql-questions-01.md)
|
|
||||||
|
|
||||||
|
|
||||||
### MySQL
|
### MySQL
|
||||||
|
|
||||||
|
@ -230,18 +230,7 @@ export const sidebarConfig = sidebar({
|
|||||||
{
|
{
|
||||||
text: "基础",
|
text: "基础",
|
||||||
icon: "basic",
|
icon: "basic",
|
||||||
children: [
|
children: ["basis", "nosql", "character-set"],
|
||||||
"basis",
|
|
||||||
"nosql",
|
|
||||||
"character-set",
|
|
||||||
{
|
|
||||||
text: "SQL",
|
|
||||||
icon: "SQL",
|
|
||||||
prefix: "sql/",
|
|
||||||
collapsible: true,
|
|
||||||
children: ["sql-syntax-summary", "sql-questions-01"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "MySQL",
|
text: "MySQL",
|
||||||
|
@ -11,7 +11,7 @@ export const themeConfig = hopeTheme({
|
|||||||
},
|
},
|
||||||
repo: "https://github.com/Snailclimb/JavaGuide",
|
repo: "https://github.com/Snailclimb/JavaGuide",
|
||||||
docsDir: "docs",
|
docsDir: "docs",
|
||||||
iconAssets: "//at.alicdn.com/t/c/font_2922463_9ir10garej4.css",
|
iconAssets: "//at.alicdn.com/t/c/font_2922463_st01t0e9sr.css",
|
||||||
navbar: navbarConfig,
|
navbar: navbarConfig,
|
||||||
sidebar: sidebarConfig,
|
sidebar: sidebarConfig,
|
||||||
pageInfo: [
|
pageInfo: [
|
||||||
|
@ -280,7 +280,7 @@ SELECT id FROM table WHERE id=1;
|
|||||||
- 使用 `SELECT *` 进行查询;
|
- 使用 `SELECT *` 进行查询;
|
||||||
- 创建了组合索引,但查询条件未准守最左匹配原则;
|
- 创建了组合索引,但查询条件未准守最左匹配原则;
|
||||||
- 在索引列上进行计算、函数、类型转换等操作;
|
- 在索引列上进行计算、函数、类型转换等操作;
|
||||||
- 以 `%` 开头的 LIKE 查询比如 `like '%abc'`;
|
- 以 `%` 开头的 LIKE 查询比如 `like '%abc';`;
|
||||||
- 查询条件中使用 or,且 or 的前后条件中有一个列没有索引,涉及的索引都不会被使用到;
|
- 查询条件中使用 or,且 or 的前后条件中有一个列没有索引,涉及的索引都不会被使用到;
|
||||||
- 发生[隐式转换](https://javaguide.cn/database/mysql/index-invalidation-caused-by-implicit-conversion.html);
|
- 发生[隐式转换](https://javaguide.cn/database/mysql/index-invalidation-caused-by-implicit-conversion.html);
|
||||||
- ......
|
- ......
|
||||||
|
@ -402,7 +402,7 @@ MySQL 中并发事务的控制方式无非就两种:**锁** 和 **MVCC**。锁
|
|||||||
**锁** 控制方式下会通过锁来显示控制共享资源而不是通过调度手段,MySQL 中主要是通过 **读写锁** 来实现并发控制。
|
**锁** 控制方式下会通过锁来显示控制共享资源而不是通过调度手段,MySQL 中主要是通过 **读写锁** 来实现并发控制。
|
||||||
|
|
||||||
- **共享锁(S 锁)** :又称读锁,事务在读取记录的时候获取共享锁,允许多个事务同时获取(锁兼容)。
|
- **共享锁(S 锁)** :又称读锁,事务在读取记录的时候获取共享锁,允许多个事务同时获取(锁兼容)。
|
||||||
- **排他锁(X 锁)** :又称写锁/独占锁,事务在修改记录的时候获取排他锁,不允许多个事务同时获取。如果一个记录已经被加了排他锁,那其他事务不能再对这条记录加任何类型的锁(锁不兼容)。
|
- **排他锁(X 锁)** :又称写锁/独占锁,事务在修改记录的时候获取排他锁,不允许多个事务同时获取。如果一个记录已经被加了排他锁,那其他事务不能再对这条事务加任何类型的锁(锁不兼容)。
|
||||||
|
|
||||||
读写锁可以做到读读并行,但是无法做到写读、写写并行。另外,根据根据锁粒度的不同,又被分为 **表级锁(table-level locking)** 和 **行级锁(row-level locking)** 。InnoDB 不光支持表级锁,还支持行级锁,默认为行级锁。行级锁的粒度更小,仅对相关的记录上锁即可(对一行或者多行记录加锁),所以对于并发写入操作来说, InnoDB 的性能更高。不论是表级锁还是行级锁,都存在共享锁(Share Lock,S 锁)和排他锁(Exclusive Lock,X 锁)这两类。
|
读写锁可以做到读读并行,但是无法做到写读、写写并行。另外,根据根据锁粒度的不同,又被分为 **表级锁(table-level locking)** 和 **行级锁(row-level locking)** 。InnoDB 不光支持表级锁,还支持行级锁,默认为行级锁。行级锁的粒度更小,仅对相关的记录上锁即可(对一行或者多行记录加锁),所以对于并发写入操作来说, InnoDB 的性能更高。不论是表级锁还是行级锁,都存在共享锁(Share Lock,S 锁)和排他锁(Exclusive Lock,X 锁)这两类。
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -192,9 +192,6 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
|
|||||||
- [数据库基础知识总结](./database/basis.md)
|
- [数据库基础知识总结](./database/basis.md)
|
||||||
- [NoSQL基础知识总结](./database/nosql.md)
|
- [NoSQL基础知识总结](./database/nosql.md)
|
||||||
- [字符集详解](./database/character-set.md)
|
- [字符集详解](./database/character-set.md)
|
||||||
- SQL :
|
|
||||||
- [SQL语法基础知识总结](./database/sql/sql-syntax-summary.md)
|
|
||||||
- [SQL常见面试题总结](./database/sql/sql-questions-01.md)
|
|
||||||
|
|
||||||
### MySQL
|
### MySQL
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ icon: project
|
|||||||
|
|
||||||
下面这几个项目都是非常适合 Spring Boot 初学者学习的,下面的大部分项目的总体代码架构我都看过,个人觉得还算不错,不会误导没有实际做过项目的朋友。
|
下面这几个项目都是非常适合 Spring Boot 初学者学习的,下面的大部分项目的总体代码架构我都看过,个人觉得还算不错,不会误导没有实际做过项目的朋友。
|
||||||
|
|
||||||
|
- **[blog](https://github.com/X1192176811/blog)** :一款基于 SpringBoot + Vue 开发的前后端分离博客,非常精致,功能也比通过类型博客系统更加丰富完善。采用 SpringSecurity 进行权限管理,ElasticSearch 全文搜索,支持 QQ、微博第三方登录、在线聊天、发布说说等功能。相关阅读:[这个 SpringBoot+ Vue 开源博客系统太酷炫了!](https://mp.weixin.qq.com/s/CCzsX3Sn2Q3vhuBDEmRTlw)。
|
||||||
- **[forest](https://github.com/rymcu)** :下一代的知识社区系统,可以自定义专题和作品集。后端基于 SpringBoot + Shrio + MyBatis + JWT + Redis,前端基于 Vue + NuxtJS + Element-UI。
|
- **[forest](https://github.com/rymcu)** :下一代的知识社区系统,可以自定义专题和作品集。后端基于 SpringBoot + Shrio + MyBatis + JWT + Redis,前端基于 Vue + NuxtJS + Element-UI。
|
||||||
- **[vhr](https://github.com/lenve/vhr "vhr")** :微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。
|
- **[vhr](https://github.com/lenve/vhr "vhr")** :微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。
|
||||||
- **[favorites-web](https://github.com/cloudfavorites/favorites-web)** :云收藏 Spring Boot 2.X 开源项目。云收藏是一个使用 Spring Boot 构建的开源网站,可以让用户在线随时随地收藏的一个网站,在网站上分类整理收藏的网站或者文章。
|
- **[favorites-web](https://github.com/cloudfavorites/favorites-web)** :云收藏 Spring Boot 2.X 开源项目。云收藏是一个使用 Spring Boot 构建的开源网站,可以让用户在线随时随地收藏的一个网站,在网站上分类整理收藏的网站或者文章。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user