diff --git a/2014/12/23/my-new-post/index.html b/2014/12/23/my-new-post/index.html index bfa5f22848..996a078234 100644 --- a/2014/12/23/my-new-post/index.html +++ b/2014/12/23/my-new-post/index.html @@ -421,7 +421,7 @@
- 48 + 49 posts
@@ -459,7 +459,7 @@
- +
diff --git a/2014/12/24/MFC 模态对话框/index.html b/2014/12/24/MFC 模态对话框/index.html index 62b4edce49..2b6e9b0885 100644 --- a/2014/12/24/MFC 模态对话框/index.html +++ b/2014/12/24/MFC 模态对话框/index.html @@ -297,13 +297,13 @@ @@ -444,7 +444,7 @@
- 48 + 49 posts
@@ -482,7 +482,7 @@
- +
diff --git a/2014/12/30/Clone-Graph-Part-I/index.html b/2014/12/30/Clone-Graph-Part-I/index.html index 26c72db344..f2e3712b52 100644 --- a/2014/12/30/Clone-Graph-Part-I/index.html +++ b/2014/12/30/Clone-Graph-Part-I/index.html @@ -293,7 +293,7 @@ @@ -447,7 +447,7 @@
- 48 + 49 posts
@@ -485,7 +485,7 @@
- +
diff --git a/2015/01/04/Path-Sum/index.html b/2015/01/04/Path-Sum/index.html index 2618dac83f..16fdf02e00 100644 --- a/2015/01/04/Path-Sum/index.html +++ b/2015/01/04/Path-Sum/index.html @@ -295,20 +295,20 @@
@@ -449,7 +449,7 @@
- 48 + 49 posts
@@ -487,7 +487,7 @@
diff --git a/2015/01/14/Two-Sum/index.html b/2015/01/14/Two-Sum/index.html index 8be6472d12..87acab9049 100644 --- a/2015/01/14/Two-Sum/index.html +++ b/2015/01/14/Two-Sum/index.html @@ -296,16 +296,16 @@
-
+
+
@@ -479,7 +483,7 @@
- 48 + 49 posts
@@ -517,7 +521,7 @@
- +
diff --git a/2020/05/10/聊聊-mysql-的-MVCC-续续篇之加锁分析/index.html b/2020/05/10/聊聊-mysql-的-MVCC-续续篇之加锁分析/index.html new file mode 100644 index 0000000000..87e1e922a9 --- /dev/null +++ b/2020/05/10/聊聊-mysql-的-MVCC-续续篇之加锁分析/index.html @@ -0,0 +1,773 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 聊聊 mysql 的 MVCC 续续篇之锁分析 | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

What hurts more, the pain of hard work or the pain of regret?

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+ + + + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 聊聊 mysql 的 MVCC 续续篇之锁分析 +

+ + +
+ + + + +
+ + +

看完前面两篇水文之后,感觉不得不来分析下 mysql 的锁了,其实前面说到幻读的时候是有个前提没提到的,比如一个select * from table1 where id = 1这种查询语句其实是不会加传说中的锁的,当然这里是指在 RR 或者 RC 隔离级别下,
看一段 mysql官方文档

+
+

SELECT ... FROM is a consistent read, reading a snapshot of the database and setting no locks unless the transaction isolation level is set to SERIALIZABLE. For SERIALIZABLE level, the search sets shared next-key locks on the index records it encounters. However, only an index record lock is required for statements that lock rows using a unique index to search for a unique row.

+
+

纯粹的这种一致性读,实际读取的是快照,也就是基于 read view 的读取方式,除非当前隔离级别是SERIALIZABLE
但是对于以下几类

+
    +
  • select * from table where ? lock in share mode;
  • +
  • select * from table where ? for update;
  • +
  • insert into table values (...);
  • +
  • update table set ? where ?;
  • +
  • delete from table where ?;
  • +
+

除了第一条是 S 锁之外,其他都是 X 排他锁,这边在顺带下,S 锁表示共享锁, X 表示独占锁,同为 S 锁之间不冲突,S 与 X,X 与 S,X 与 X 之间都冲突,也就是加了前者,后者就加不上了
我们知道对于 RC 级别会出现幻读现象,对于 RR 级别不会出现,主要的区别是 RR 级别下对于以上的加锁读取都根据情况加上了 gap 锁,那么是不是 RR 级别下以上所有的都是要加 gap 锁呢,当然不是
举个例子,RR 事务隔离级别下,table1 有个主键id 字段
select * from table1 where id = 10 for update
这条语句要加 gap 锁吗?
答案是不需要,这里其实算是我看了这么久的一点自己的理解,啥时候要加 gap 锁,判断的条件是根据我查询的数据是否会因为不加 gap 锁而出现数量的不一致,我上面这条查询语句,在什么情况下会出现查询结果数量不一致呢,只要在这条记录被更新或者删除的时候,有没有可能我第一次查出来一条,第二次变成两条了呢,不可能,因为是主键索引。
再变更下这个题的条件,当 id 不是主键,但是是唯一索引,这样需要怎么加锁,注意问题是怎么加锁,不是需不需要加 gap 锁,这里呢就是稍微延伸一下,把聚簇索引(主键索引)和二级索引带一下,当 id 不是主键,说明是个二级索引,但是它是唯一索引,体会下,首先对于 id = 10这个二级索引肯定要加锁,要不要锁 gap 呢,不用,因为是唯一索引,id = 10 只可能有这一条记录,然后呢,这样是不是就好了,还不行,因为啥,因为它是二级索引,对应的主键索引的记录才是真正的数据,万一被更新掉了咋办,所以在 id = 10 对应的主键索引上也需要加上锁(默认都是 record lock行锁),那主键索引上要不要加 gap 呢,也不用,也是精确定位到这一条记录
最后呢,当 id 不是主键,也不是唯一索引,只是个普通的索引,这里就需要大名鼎鼎的 gap 锁了,
是时候画个图了

其实核心的目的还是不让这个 id=10 的记录不会出现幻读,那么就需要在 id 这个索引上加上三个 gap 锁,主键索引上就不用了,在 id 索引上已经控制住了id = 10 不会出现幻读,主键索引上这两条对应的记录已经锁了,所以就这样 OK 了

+ +
+ + + + + + + + +
+
请我喝杯咖啡
+ + +
+ + + +
+ +
+ + + + +
+ + + + + + +
+ + +
+
+ +
+
+ + + + +
+ + + + + + + + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/404.html b/404.html index 3d4e6d68d9..ba10a485eb 100644 --- a/404.html +++ b/404.html @@ -320,7 +320,7 @@
- 48 + 49 posts
@@ -358,7 +358,7 @@
- +
diff --git a/404/index.html b/404/index.html index c02d43299b..fc801403d5 100644 --- a/404/index.html +++ b/404/index.html @@ -307,7 +307,7 @@
- 48 + 49 posts
@@ -345,7 +345,7 @@
- +
diff --git a/archives/2014/12/index.html b/archives/2014/12/index.html index a27274aca0..654847dca7 100644 --- a/archives/2014/12/index.html +++ b/archives/2014/12/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -350,7 +350,7 @@
- 48 + 49 posts
@@ -388,7 +388,7 @@
diff --git a/archives/2014/index.html b/archives/2014/index.html index dac59b045d..41c3184d27 100644 --- a/archives/2014/index.html +++ b/archives/2014/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -350,7 +350,7 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2015/01/index.html b/archives/2015/01/index.html index 0b6c6737d9..d286eb4c49 100644 --- a/archives/2015/01/index.html +++ b/archives/2015/01/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -350,7 +350,7 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2015/03/index.html b/archives/2015/03/index.html index e7bce77864..d75bc2f408 100644 --- a/archives/2015/03/index.html +++ b/archives/2015/03/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -350,7 +350,7 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2015/04/index.html b/archives/2015/04/index.html index 45ce4fe63b..35b412f5d9 100644 --- a/archives/2015/04/index.html +++ b/archives/2015/04/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -330,7 +330,7 @@ @@ -368,7 +368,7 @@ diff --git a/archives/2015/06/index.html b/archives/2015/06/index.html index 2127de865f..1842c5965c 100644 --- a/archives/2015/06/index.html +++ b/archives/2015/06/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2015/index.html b/archives/2015/index.html index c28f4771e1..e800188182 100644 --- a/archives/2015/index.html +++ b/archives/2015/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -470,7 +470,7 @@ @@ -508,7 +508,7 @@ diff --git a/archives/2016/07/index.html b/archives/2016/07/index.html index 405e2a076a..c9d8575438 100644 --- a/archives/2016/07/index.html +++ b/archives/2016/07/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2016/08/index.html b/archives/2016/08/index.html index 4c2eb187ab..ef01e5829b 100644 --- a/archives/2016/08/index.html +++ b/archives/2016/08/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -330,7 +330,7 @@ @@ -368,7 +368,7 @@ diff --git a/archives/2016/09/index.html b/archives/2016/09/index.html index d189768c38..0305d1c150 100644 --- a/archives/2016/09/index.html +++ b/archives/2016/09/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2016/10/index.html b/archives/2016/10/index.html index 943c3459dc..f14d2399f5 100644 --- a/archives/2016/10/index.html +++ b/archives/2016/10/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -330,7 +330,7 @@ @@ -368,7 +368,7 @@ diff --git a/archives/2016/11/index.html b/archives/2016/11/index.html index 3a7019e499..5842883b9a 100644 --- a/archives/2016/11/index.html +++ b/archives/2016/11/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2016/index.html b/archives/2016/index.html index 953b7bc75d..b41699fe6a 100644 --- a/archives/2016/index.html +++ b/archives/2016/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -430,7 +430,7 @@ @@ -468,7 +468,7 @@ diff --git a/archives/2017/03/index.html b/archives/2017/03/index.html index c71fc42c8c..c950f1f5a9 100644 --- a/archives/2017/03/index.html +++ b/archives/2017/03/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2017/04/index.html b/archives/2017/04/index.html index 4b0d50f5c0..fc83d921db 100644 --- a/archives/2017/04/index.html +++ b/archives/2017/04/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2017/05/index.html b/archives/2017/05/index.html index 96dba64aec..e2d976a226 100644 --- a/archives/2017/05/index.html +++ b/archives/2017/05/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2017/index.html b/archives/2017/index.html index 15e0d7925d..997f8f9740 100644 --- a/archives/2017/index.html +++ b/archives/2017/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -350,7 +350,7 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2019/06/index.html b/archives/2019/06/index.html index c75ce4285f..dd06971480 100644 --- a/archives/2019/06/index.html +++ b/archives/2019/06/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2019/09/index.html b/archives/2019/09/index.html index d4ec41e5f1..05aa913e33 100644 --- a/archives/2019/09/index.html +++ b/archives/2019/09/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2019/12/index.html b/archives/2019/12/index.html index 816bbdc9b4..dfca023431 100644 --- a/archives/2019/12/index.html +++ b/archives/2019/12/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -390,7 +390,7 @@ @@ -428,7 +428,7 @@ diff --git a/archives/2019/index.html b/archives/2019/index.html index 22e11c7221..b68cb82b03 100644 --- a/archives/2019/index.html +++ b/archives/2019/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -430,7 +430,7 @@ @@ -468,7 +468,7 @@ diff --git a/archives/2020/01/index.html b/archives/2020/01/index.html index f307193200..dda17cb022 100644 --- a/archives/2020/01/index.html +++ b/archives/2020/01/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -390,7 +390,7 @@ @@ -428,7 +428,7 @@ diff --git a/archives/2020/02/index.html b/archives/2020/02/index.html index ed1974d9ce..3f99fe26b6 100644 --- a/archives/2020/02/index.html +++ b/archives/2020/02/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -370,7 +370,7 @@ @@ -408,7 +408,7 @@ diff --git a/archives/2020/03/index.html b/archives/2020/03/index.html index bae9e7f776..0052cd60ae 100644 --- a/archives/2020/03/index.html +++ b/archives/2020/03/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -390,7 +390,7 @@ @@ -428,7 +428,7 @@ diff --git a/archives/2020/04/index.html b/archives/2020/04/index.html index 8df6e750cc..e4ec5c553c 100644 --- a/archives/2020/04/index.html +++ b/archives/2020/04/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -370,7 +370,7 @@ @@ -408,7 +408,7 @@ diff --git a/archives/2020/05/index.html b/archives/2020/05/index.html index da861ddd73..f68c733080 100644 --- a/archives/2020/05/index.html +++ b/archives/2020/05/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -310,7 +330,7 @@ @@ -348,7 +368,7 @@ diff --git a/archives/2020/index.html b/archives/2020/index.html index 536c02bdff..69d3cf6782 100644 --- a/archives/2020/index.html +++ b/archives/2020/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -396,26 +416,6 @@
- -
@@ -493,7 +493,7 @@ @@ -531,7 +531,7 @@ diff --git a/archives/2020/page/2/index.html b/archives/2020/page/2/index.html index 254c110c36..48c8d70981 100644 --- a/archives/2020/page/2/index.html +++ b/archives/2020/page/2/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -473,7 +493,7 @@ @@ -511,7 +531,7 @@ diff --git a/archives/index.html b/archives/index.html index b711571ad2..17fb247713 100644 --- a/archives/index.html +++ b/archives/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -396,26 +416,6 @@
- -
@@ -493,7 +493,7 @@ @@ -531,7 +531,7 @@ diff --git a/archives/page/2/index.html b/archives/page/2/index.html index 3aef7e8977..5a635c755f 100644 --- a/archives/page/2/index.html +++ b/archives/page/2/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -395,29 +415,6 @@
-
- 2019 -
- -
@@ -496,7 +493,7 @@ @@ -534,7 +531,7 @@ diff --git a/archives/page/3/index.html b/archives/page/3/index.html index 72100d4e39..92007c9cf5 100644 --- a/archives/page/3/index.html +++ b/archives/page/3/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2019
+ +
@@ -398,29 +418,6 @@
-
- 2016 -
- -
@@ -499,7 +496,7 @@ @@ -537,7 +534,7 @@ diff --git a/archives/page/4/index.html b/archives/page/4/index.html index 80e0de2aa9..dad8631c8b 100644 --- a/archives/page/4/index.html +++ b/archives/page/4/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2016
+ +
@@ -399,26 +419,6 @@
- -
@@ -496,7 +496,7 @@ @@ -534,7 +534,7 @@ diff --git a/archives/page/5/index.html b/archives/page/5/index.html index 090942957a..9c71c89c6b 100644 --- a/archives/page/5/index.html +++ b/archives/page/5/index.html @@ -208,7 +208,7 @@
- OK! 48 posts in total. Keep on posting. + OK! 49 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2015
+ +
@@ -456,7 +476,7 @@ @@ -494,7 +514,7 @@ diff --git a/atom.xml b/atom.xml index 2808c4de2e..c734543ba7 100644 --- a/atom.xml +++ b/atom.xml @@ -6,7 +6,7 @@ - 2020-05-03T14:24:19.261Z + 2020-05-10T14:23:36.231Z https://nicksxs.me/ @@ -16,12 +16,61 @@ Hexo + + 聊聊 mysql 的 MVCC 续续篇之锁分析 + + https://nicksxs.me/2020/05/10/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC-%E7%BB%AD%E7%BB%AD%E7%AF%87%E4%B9%8B%E5%8A%A0%E9%94%81%E5%88%86%E6%9E%90/ + 2020-05-10T01:55:10.000Z + 2020-05-10T14:23:36.231Z + + + + + + + + <p>看完前面两篇水文之后,感觉不得不来分析下 mysql 的锁了,其实前面说到幻读的时候是有个前提没提到的,比如一个<code>select * from table1 where id = 1</code>这种查询语句其实是不会加传说中的锁的,当然这里是指在 RR 或者 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 聊聊 mysql 的 MVCC 续篇 https://nicksxs.me/2020/05/02/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC-%E7%BB%AD%E7%AF%87/ 2020-05-02T06:46:35.000Z - 2020-05-03T14:24:19.261Z + 2020-05-03T14:26:29.291Z @@ -720,45 +769,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - redis数据结构介绍-第一部分 SDS,链表,字典 - - https://nicksxs.me/2019/12/26/redis%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%BB%8B%E7%BB%8D/ - 2019-12-25T16:03:49.000Z - 2020-01-12T13:08:27.013Z - - - - - - - - <p>redis是现在服务端很常用的缓存中间件,其实原来还有<code>memcache</code>之类的竞品,但是现在貌似 redis 快一统江湖,这里当然不是在吹,只是个人角度的一个感觉,不权威只是主观感觉。<br>redis - - - diff --git a/baidu_verify_Gl8jtoDV4z.html b/baidu_verify_Gl8jtoDV4z.html index 84a7a094e6..1bdd566684 100644 --- a/baidu_verify_Gl8jtoDV4z.html +++ b/baidu_verify_Gl8jtoDV4z.html @@ -309,7 +309,7 @@ @@ -347,7 +347,7 @@ diff --git a/baidusitemap.xml b/baidusitemap.xml index a90bbebdf4..9ed3fa349c 100644 --- a/baidusitemap.xml +++ b/baidusitemap.xml @@ -1,6 +1,9 @@ + https://nicksxs.me/2020/05/10/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC-%E7%BB%AD%E7%BB%AD%E7%AF%87%E4%B9%8B%E5%8A%A0%E9%94%81%E5%88%86%E6%9E%90/ + 2020-05-10 + https://nicksxs.me/2020/05/02/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC-%E7%BB%AD%E7%AF%87/ 2020-05-03 @@ -57,33 +60,33 @@ https://nicksxs.me/2019/12/10/Redis-Part-1/ 2020-01-12 - - https://nicksxs.me/2016/11/10/php-abstract-class-and-interface/ - 2020-01-12 https://nicksxs.me/2016/09/29/binary-watch/ 2020-01-12 - https://nicksxs.me/2019/12/26/redis%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%BB%8B%E7%BB%8D/ + https://nicksxs.me/2016/11/10/php-abstract-class-and-interface/ 2020-01-12 - https://nicksxs.me/2015/04/14/Add-Two-Number/ + https://nicksxs.me/2019/12/26/redis%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%BB%8B%E7%BB%8D/ 2020-01-12 https://nicksxs.me/2015/03/13/Reverse-Integer/ 2020-01-12 - https://nicksxs.me/2016/08/14/docker-mysql-cluster/ + https://nicksxs.me/2015/04/14/Add-Two-Number/ 2020-01-12 https://nicksxs.me/2014/12/24/MFC%20%E6%A8%A1%E6%80%81%E5%AF%B9%E8%AF%9D%E6%A1%86/ 2020-01-12 - https://nicksxs.me/2019/06/18/openresty/ + https://nicksxs.me/2016/08/14/docker-mysql-cluster/ 2020-01-12 https://nicksxs.me/2017/05/09/ambari-summary/ 2020-01-12 + + https://nicksxs.me/2019/06/18/openresty/ + 2020-01-12 https://nicksxs.me/2020/01/04/redis%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%BB%8B%E7%BB%8D%E4%BA%8C/ 2020-01-12 @@ -112,10 +115,10 @@ https://nicksxs.me/2016/07/13/swoole-websocket-test/ 2020-01-12 - https://nicksxs.me/2016/10/12/summary-ranges-228/ + https://nicksxs.me/2015/06/22/invert-binary-tree/ 2020-01-12 - https://nicksxs.me/2015/06/22/invert-binary-tree/ + https://nicksxs.me/2016/10/12/summary-ranges-228/ 2020-01-12 https://nicksxs.me/2015/01/04/Path-Sum/ @@ -127,10 +130,10 @@ https://nicksxs.me/2015/03/11/Number-Of-1-Bits/ 2020-01-12 - https://nicksxs.me/2015/04/15/Leetcode-No-3/ + https://nicksxs.me/2019/09/23/AbstractQueuedSynchronizer/ 2020-01-12 - https://nicksxs.me/2019/09/23/AbstractQueuedSynchronizer/ + https://nicksxs.me/2015/04/15/Leetcode-No-3/ 2020-01-12 https://nicksxs.me/2015/01/16/pcre-intro-and-a-simple-package/ diff --git a/categories/C/Mysql/index.html b/categories/C/Mysql/index.html index a3b5b67010..4cdd05df87 100644 --- a/categories/C/Mysql/index.html +++ b/categories/C/Mysql/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -330,7 +350,7 @@ @@ -368,7 +388,7 @@ diff --git a/categories/C/Redis/index.html b/categories/C/Redis/index.html index bfc590a47b..aa4d27e631 100644 --- a/categories/C/Redis/index.html +++ b/categories/C/Redis/index.html @@ -473,7 +473,7 @@ @@ -511,7 +511,7 @@ diff --git a/categories/C/index.html b/categories/C/index.html index 65e5d1cc31..cc239be7dd 100644 --- a/categories/C/index.html +++ b/categories/C/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -394,29 +414,6 @@
- - -
- 2019 -
- - @@ -496,7 +493,7 @@ @@ -534,7 +531,7 @@ diff --git a/categories/C/page/2/index.html b/categories/C/page/2/index.html index 304ffed519..9a99865920 100644 --- a/categories/C/page/2/index.html +++ b/categories/C/page/2/index.html @@ -217,6 +217,26 @@ 2019
+ +
@@ -313,7 +333,7 @@ @@ -351,7 +371,7 @@ diff --git a/categories/Java/Design-Patterns/index.html b/categories/Java/Design-Patterns/index.html index eff9e88e34..4f15742ae1 100644 --- a/categories/Java/Design-Patterns/index.html +++ b/categories/Java/Design-Patterns/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Java/GC/index.html b/categories/Java/GC/index.html index c6f987597d..2ac951adbe 100644 --- a/categories/Java/GC/index.html +++ b/categories/Java/GC/index.html @@ -333,7 +333,7 @@ @@ -371,7 +371,7 @@ diff --git a/categories/Java/JVM/index.html b/categories/Java/JVM/index.html index 1b14f4de0b..1f620fdc0f 100644 --- a/categories/Java/JVM/index.html +++ b/categories/Java/JVM/index.html @@ -333,7 +333,7 @@ @@ -371,7 +371,7 @@ diff --git a/categories/Java/Maven/index.html b/categories/Java/Maven/index.html index f8cfedde0a..5852b1f952 100644 --- a/categories/Java/Maven/index.html +++ b/categories/Java/Maven/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Java/Singleton/index.html b/categories/Java/Singleton/index.html index ae087c25da..9a382c5844 100644 --- a/categories/Java/Singleton/index.html +++ b/categories/Java/Singleton/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Java/index.html b/categories/Java/index.html index 772465071b..c9f5fc1e71 100644 --- a/categories/Java/index.html +++ b/categories/Java/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Java/集合/index.html b/categories/Java/集合/index.html index 67308bbff4..aa34260170 100644 --- a/categories/Java/集合/index.html +++ b/categories/Java/集合/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Linux/index.html b/categories/Linux/index.html index f07b437ec6..140640de3e 100644 --- a/categories/Linux/index.html +++ b/categories/Linux/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Linux/命令/echo/index.html b/categories/Linux/命令/echo/index.html index fdd5518888..34c52cd51e 100644 --- a/categories/Linux/命令/echo/index.html +++ b/categories/Linux/命令/echo/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Linux/命令/index.html b/categories/Linux/命令/index.html index 7c36ba2dff..131ae8347e 100644 --- a/categories/Linux/命令/index.html +++ b/categories/Linux/命令/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Mysql/index.html b/categories/Mysql/index.html index 1e2fcad22d..a03e1d43e8 100644 --- a/categories/Mysql/index.html +++ b/categories/Mysql/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -330,7 +350,7 @@ @@ -368,7 +388,7 @@ diff --git a/categories/Mysql/数据结构/index.html b/categories/Mysql/数据结构/index.html index 22a6b7b232..914077b341 100644 --- a/categories/Mysql/数据结构/index.html +++ b/categories/Mysql/数据结构/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -330,7 +350,7 @@ @@ -368,7 +388,7 @@ diff --git a/categories/Mysql/源码/index.html b/categories/Mysql/源码/index.html index 127eee756d..ddeb858edc 100644 --- a/categories/Mysql/源码/index.html +++ b/categories/Mysql/源码/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -330,7 +350,7 @@ @@ -368,7 +388,7 @@ diff --git a/categories/Redis/Distributed-Lock/index.html b/categories/Redis/Distributed-Lock/index.html index de15b53bf9..2fe5d7582d 100644 --- a/categories/Redis/Distributed-Lock/index.html +++ b/categories/Redis/Distributed-Lock/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Redis/index.html b/categories/Redis/index.html index b380f51738..322e8c51d9 100644 --- a/categories/Redis/index.html +++ b/categories/Redis/index.html @@ -473,7 +473,7 @@ @@ -511,7 +511,7 @@ diff --git a/categories/Redis/数据结构/index.html b/categories/Redis/数据结构/index.html index bd69871b99..eff6481150 100644 --- a/categories/Redis/数据结构/index.html +++ b/categories/Redis/数据结构/index.html @@ -453,7 +453,7 @@ @@ -491,7 +491,7 @@ diff --git a/categories/Redis/源码/index.html b/categories/Redis/源码/index.html index b2f88cf1b7..d2b8d7715e 100644 --- a/categories/Redis/源码/index.html +++ b/categories/Redis/源码/index.html @@ -453,7 +453,7 @@ @@ -491,7 +491,7 @@ diff --git a/categories/data-analysis/index.html b/categories/data-analysis/index.html index 5740c79e79..362d56673c 100644 --- a/categories/data-analysis/index.html +++ b/categories/data-analysis/index.html @@ -330,7 +330,7 @@ @@ -368,7 +368,7 @@ diff --git a/categories/docker/index.html b/categories/docker/index.html index 70a8a64975..dd34b9e723 100644 --- a/categories/docker/index.html +++ b/categories/docker/index.html @@ -370,7 +370,7 @@ @@ -408,7 +408,7 @@ diff --git a/categories/docker/介绍/index.html b/categories/docker/介绍/index.html index 7e36a75013..bdb0c60238 100644 --- a/categories/docker/介绍/index.html +++ b/categories/docker/介绍/index.html @@ -350,7 +350,7 @@ @@ -388,7 +388,7 @@ diff --git a/categories/docker/发行版本/index.html b/categories/docker/发行版本/index.html index 27f12289d5..1f069ddf38 100644 --- a/categories/docker/发行版本/index.html +++ b/categories/docker/发行版本/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/index.html b/categories/index.html index d3b51bd6f0..75876ee9cd 100644 --- a/categories/index.html +++ b/categories/index.html @@ -231,7 +231,7 @@ 38 categories in total
@@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/leetcode/index.html b/categories/leetcode/index.html index 087cc6b6e6..3fe8fe9795 100644 --- a/categories/leetcode/index.html +++ b/categories/leetcode/index.html @@ -496,7 +496,7 @@ @@ -534,7 +534,7 @@ diff --git a/categories/leetcode/page/2/index.html b/categories/leetcode/page/2/index.html index 2e50b5a35d..970981a977 100644 --- a/categories/leetcode/page/2/index.html +++ b/categories/leetcode/page/2/index.html @@ -356,7 +356,7 @@ @@ -394,7 +394,7 @@ diff --git a/categories/nginx/index.html b/categories/nginx/index.html index c664a83016..68657dcbfd 100644 --- a/categories/nginx/index.html +++ b/categories/nginx/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/php/index.html b/categories/php/index.html index d8aa4d3d04..d2bed843a4 100644 --- a/categories/php/index.html +++ b/categories/php/index.html @@ -353,7 +353,7 @@ @@ -391,7 +391,7 @@ diff --git a/categories/持续集成/index.html b/categories/持续集成/index.html index 29f0340248..18853bcb4f 100644 --- a/categories/持续集成/index.html +++ b/categories/持续集成/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/生活/index.html b/categories/生活/index.html index 8ba4b92b56..71a4520068 100644 --- a/categories/生活/index.html +++ b/categories/生活/index.html @@ -353,7 +353,7 @@ @@ -391,7 +391,7 @@ diff --git a/categories/生活/年终总结/2019/index.html b/categories/生活/年终总结/2019/index.html index ee71dfa663..d4d78040f3 100644 --- a/categories/生活/年终总结/2019/index.html +++ b/categories/生活/年终总结/2019/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/生活/年终总结/index.html b/categories/生活/年终总结/index.html index 7d4d6d0237..6fa26ce8c9 100644 --- a/categories/生活/年终总结/index.html +++ b/categories/生活/年终总结/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/生活/影评/2020/index.html b/categories/生活/影评/2020/index.html index 2e749b6843..efba16f044 100644 --- a/categories/生活/影评/2020/index.html +++ b/categories/生活/影评/2020/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/生活/影评/index.html b/categories/生活/影评/index.html index 956806afeb..c54dc60916 100644 --- a/categories/生活/影评/index.html +++ b/categories/生活/影评/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/读后感/index.html b/categories/读后感/index.html index 9a547299b4..f1c07876b7 100644 --- a/categories/读后感/index.html +++ b/categories/读后感/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/categories/读后感/村上春树/index.html b/categories/读后感/村上春树/index.html index a30c04286c..5a3461e12b 100644 --- a/categories/读后感/村上春树/index.html +++ b/categories/读后感/村上春树/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/css/main.css b/css/main.css index d859e81c65..6c45bfa25e 100644 --- a/css/main.css +++ b/css/main.css @@ -1262,7 +1262,7 @@ pre .javascript .function { } .links-of-author a::before, .links-of-author span.exturl::before { - background: #12ff0d; + background: #ff9505; border-radius: 50%; content: ' '; display: inline-block; diff --git a/index.html b/index.html index aa16534570..4776a99511 100644 --- a/index.html +++ b/index.html @@ -203,6 +203,125 @@ +
+ + + + + +
+

+ + +

+ + +
+ + + + +
+ + +

看完前面两篇水文之后,感觉不得不来分析下 mysql 的锁了,其实前面说到幻读的时候是有个前提没提到的,比如一个select * from table1 where id = 1这种查询语句其实是不会加传说中的锁的,当然这里是指在 RR 或者 RC 隔离级别下,
看一段 mysql官方文档

+
+

SELECT ... FROM is a consistent read, reading a snapshot of the database and setting no locks unless the transaction isolation level is set to SERIALIZABLE. For SERIALIZABLE level, the search sets shared next-key locks on the index records it encounters. However, only an index record lock is required for statements that lock rows using a unique index to search for a unique row.

+
+

纯粹的这种一致性读,实际读取的是快照,也就是基于 read view 的读取方式,除非当前隔离级别是SERIALIZABLE
但是对于以下几类

+
    +
  • select * from table where ? lock in share mode;
  • +
  • select * from table where ? for update;
  • +
  • insert into table values (...);
  • +
  • update table set ? where ?;
  • +
  • delete from table where ?;
  • +
+

除了第一条是 S 锁之外,其他都是 X 排他锁,这边在顺带下,S 锁表示共享锁, X 表示独占锁,同为 S 锁之间不冲突,S 与 X,X 与 S,X 与 X 之间都冲突,也就是加了前者,后者就加不上了
我们知道对于 RC 级别会出现幻读现象,对于 RR 级别不会出现,主要的区别是 RR 级别下对于以上的加锁读取都根据情况加上了 gap 锁,那么是不是 RR 级别下以上所有的都是要加 gap 锁呢,当然不是
举个例子,RR 事务隔离级别下,table1 有个主键id 字段
select * from table1 where id = 10 for update
这条语句要加 gap 锁吗?
答案是不需要,这里其实算是我看了这么久的一点自己的理解,啥时候要加 gap 锁,判断的条件是根据我查询的数据是否会因为不加 gap 锁而出现数量的不一致,我上面这条查询语句,在什么情况下会出现查询结果数量不一致呢,只要在这条记录被更新或者删除的时候,有没有可能我第一次查出来一条,第二次变成两条了呢,不可能,因为是主键索引。
再变更下这个题的条件,当 id 不是主键,但是是唯一索引,这样需要怎么加锁,注意问题是怎么加锁,不是需不需要加 gap 锁,这里呢就是稍微延伸一下,把聚簇索引(主键索引)和二级索引带一下,当 id 不是主键,说明是个二级索引,但是它是唯一索引,体会下,首先对于 id = 10这个二级索引肯定要加锁,要不要锁 gap 呢,不用,因为是唯一索引,id = 10 只可能有这一条记录,然后呢,这样是不是就好了,还不行,因为啥,因为它是二级索引,对应的主键索引的记录才是真正的数据,万一被更新掉了咋办,所以在 id = 10 对应的主键索引上也需要加上锁(默认都是 record lock行锁),那主键索引上要不要加 gap 呢,也不用,也是精确定位到这一条记录
最后呢,当 id 不是主键,也不是唯一索引,只是个普通的索引,这里就需要大名鼎鼎的 gap 锁了,
是时候画个图了

其实核心的目的还是不让这个 id=10 的记录不会出现幻读,那么就需要在 id 这个索引上加上三个 gap 锁,主键索引上就不用了,在 id 索引上已经控制住了id = 10 不会出现幻读,主键索引上这两条对应的记录已经锁了,所以就这样 OK 了

+ + +
+ + + + + + +
+
+
+
+ + + + + + +
@@ -235,7 +354,7 @@ - +
@@ -1292,110 +1412,6 @@ - - - -
- - - - - -
-

- - -

- - -
- - - - -
- - -

寄生虫这部电影在获得奥斯卡之前就有关注了,豆瓣评分很高,一开始看到这个片名以为是像《铁线虫入侵》那种灾难片,后来看到男主,宋康昊,也是老面孔了,从高中时候在学校操场组织看的《汉江怪物》,有点二的感觉,后来在大学寝室电脑上重新看的时候,室友跟我说是韩国国宝级演员,真人不可貌相,感觉是个呆子的形象。

-

但是你说这不是个灾难片,而是个反映社会问题的,就业比较容易往这个方向猜,只是剧情会是怎么样的,一时也没啥头绪,后来不知道哪里看了下一个剧情透露,是一个穷人给富人做家教,然后把自己一家都带进富人家,如果是这样的话可能会把这个怎么带进去作为一个主线,不过事实告诉我,这没那么重要,从第一步朋友的介绍,就显得无比顺利,要去当家教了,作为一个穷成这样的人,瞬间转变成一个衣着得体,言行举止都没让富人家看出破绽的延世大学学生,这真的挺难让人理解,所谓江山易改,本性难移,还有就是这人也正好有那么好能力去辅导,并且诡异的是,多惠也是瞬间就喜欢上了男主,多惠跟将男主介绍给她做家教,也就是多惠原来的家教敏赫,应该也有不少的相处时间,这变了有点大了吧,当然这里也可能因为时长需要,如果说这一点是因为时长,那可能我所有的槽点都是因为这个吧,因为我理解的应该是把家里的人如何一步步地带进富人家,这应该是整个剧情的一个需要更多铺垫去克服这个矛盾点,有时候也想过如果我去当导演,是能拍出个啥,没这个机会,可能有也会是很扯淡的,当然这也不能阻拦我谈谈对这个点的一些看法,毕竟评价一台电冰箱不是说我必须得自己会制冷对吧,这大概是我觉得这个电影的第一个槽点,接下去接二连三的,就是我说的这个最核心的矛盾点,不知道谁说过,这种影视剧应该是源自于生活又高于生活,越是好的作品,越要接近生活,这样子才更能有感同身受。

-

接下去的点是金基宇介绍金基婷去给多颂当美术家教,这一步又是我理解的败笔吧,就怎么说呢,没什么铺垫,突然从一个社会底层的穷姑娘,转变成一个气场爆表,把富人家太太唬得一愣一愣的,如果说富太太是比较简单无脑的,那富人自己应该是比较有见识而且是做 IT 的,给自己儿子女儿做家教的,查查底细也很正常吧,但是啥都没有,然后呢,她又开始耍司机的心机了,真的是莫名其妙了,司机真的很惨,窈窕淑女君子好逑,而且这个操作也让我摸不着头脑,这是多腹黑并且有经验才会这么操作,脱内裤真的是让我看得一愣愣的,更看得我一愣一愣的,富人竟然也完全按着这个思路去想了,完全没有别的可能呢,甚至可以去查下行车记录仪或者怎样的,或者有没有毛发体液啥的去检验下,毕竟金基婷也乘坐过这辆车,但是最最让我不懂的还是脱内裤这个操作,究竟是什么样的人才会的呢,值得思考。

-

金基泽和忠淑的点也是比较奇怪,首先是金基泽,引起最后那个杀人事件的一个由头,大部分观点都是人为朴社长在之前跟老婆啪啪啪的时候说金基泽的身上有股乘地铁的人的味道,简而言之就是穷人的味道,还有去雯光丈夫身下拿钥匙是对金基泽和雯光丈夫身上的味道的鄙夷,可是这个原因真的站不住脚,即使是同样经济水平,如果身上有比较重的异味,背后讨论下,或者闻到了比较重的味道,有不适的表情和动作很正常吧,像雯光丈夫,在地下室里呆了那么久,身上有异味并且比较重太正常了,就跟在厕所呆久了不会觉得味道大,但是从没味道的地方一进有点味道的厕所就会觉得异样,略尴尬的理由;再说忠淑呢,感觉是太厉害了,能胜任这么一家有钱人的各种挑剔的饮食口味要求的保姆职位,也是让人看懵逼了,看到了不禁想到一个问题,这家人开头是那么地穷,不堪,突然转变成这么地像骗子家族,如果有这么好的骗人能力,应该不会到这种地步吧,如果真的是那么穷,没能力,没志气,又怎么会突然变成这么厉害呢,一家人各司其职,把富人家唬得团团转,而这个前提是,这些人的确能胜任这四个位置,这就是我非常不能理解的点。

-

然后说回这个标题,寄生虫,不知道是不是翻译过来不准确,如果真的是叫寄生虫的话,这个寄生虫智商未免也太低了,没有像新冠那样机制,致死率低一点,传染能力强一点,潜伏期也能传染,这个寄生虫第一次受到免疫系统的攻击就自爆了;还有呢,作为一个社会比较低层的打工者,乡下人,对这个审题也是不太审的清,是指这一家人是社会的寄生虫,不思进取,并且死的应该,富人是傻白甜,又有钱又善良,这是给有钱人洗地了还是啥,这个奥斯卡真不知道是怎么得的,总觉得奥斯卡,甚至低一点,豆瓣,得奖的,评分高的都是被一群“精英党”把持的,有黑人主角的,得分高;有同性恋的,得分高;结局惨的,得分高;看不懂的,得分高;就像肖申克的救赎,真不知道是哪里好了,最近看了关于明朝那些事的三杨,杨溥的经历应该比这个厉害吧,可是外国人看不懂,就像外国人不懂中国为什么有反分裂国家法,经历了鸦片战争,八国联军,抗日战争等等,其实跟外国对于黑人的权益的问题,因为有南北战争,所以极度重视这个问题,相应的中国也有自己的历史,请理解。

-

简而言之我对寄生虫的评分大概 5~6 分吧。

- - -
- - - - - - -
-
-
-
- - - -
+ +
@@ -310,7 +330,7 @@ @@ -348,7 +368,7 @@ diff --git a/tags/hadoop/index.html b/tags/hadoop/index.html index c3933b9ca1..81f95d6758 100644 --- a/tags/hadoop/index.html +++ b/tags/hadoop/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/im/index.html b/tags/im/index.html index f52e042d08..be81d8f31c 100644 --- a/tags/im/index.html +++ b/tags/im/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/index.html b/tags/index.html index 3871681ec9..2aef99d777 100644 --- a/tags/index.html +++ b/tags/index.html @@ -231,7 +231,7 @@ 63 tags in total
@@ -317,7 +317,7 @@ @@ -355,7 +355,7 @@ diff --git a/tags/java/index.html b/tags/java/index.html index b274561892..b920c74f43 100644 --- a/tags/java/index.html +++ b/tags/java/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/leetcode/index.html b/tags/leetcode/index.html index 3341e06c23..67a2a227ad 100644 --- a/tags/leetcode/index.html +++ b/tags/leetcode/index.html @@ -496,7 +496,7 @@ @@ -534,7 +534,7 @@ diff --git a/tags/leetcode/page/2/index.html b/tags/leetcode/page/2/index.html index 88456d3459..879ca8152c 100644 --- a/tags/leetcode/page/2/index.html +++ b/tags/leetcode/page/2/index.html @@ -356,7 +356,7 @@ @@ -394,7 +394,7 @@ diff --git a/tags/linux/index.html b/tags/linux/index.html index b26960dcef..2de1dce8a9 100644 --- a/tags/linux/index.html +++ b/tags/linux/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/mfc/index.html b/tags/mfc/index.html index 3870d67d39..b7c2a2f722 100644 --- a/tags/mfc/index.html +++ b/tags/mfc/index.html @@ -333,7 +333,7 @@ @@ -371,7 +371,7 @@ diff --git a/tags/mq/index.html b/tags/mq/index.html index 606a03f77a..9e3507c328 100644 --- a/tags/mq/index.html +++ b/tags/mq/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/mvcc/index.html b/tags/mvcc/index.html index cef70c5ff5..1e45406969 100644 --- a/tags/mvcc/index.html +++ b/tags/mvcc/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -330,7 +350,7 @@ @@ -368,7 +388,7 @@ diff --git a/tags/mysql/index.html b/tags/mysql/index.html index 99befaf7c1..f052597e60 100644 --- a/tags/mysql/index.html +++ b/tags/mysql/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -353,7 +373,7 @@ @@ -391,7 +411,7 @@ diff --git a/tags/namespace/index.html b/tags/namespace/index.html index e8fb6179a0..828f7afdff 100644 --- a/tags/namespace/index.html +++ b/tags/namespace/index.html @@ -350,7 +350,7 @@ @@ -388,7 +388,7 @@ diff --git a/tags/next-key-lock/index.html b/tags/next-key-lock/index.html index 2e4f884e31..df5a445ab0 100644 --- a/tags/next-key-lock/index.html +++ b/tags/next-key-lock/index.html @@ -217,6 +217,26 @@ 2020
+
+
+ + + +
+ +
+ +
+
+
@@ -310,7 +330,7 @@ @@ -348,7 +368,7 @@ diff --git a/tags/nginx/index.html b/tags/nginx/index.html index a85a3acf85..f529097a28 100644 --- a/tags/nginx/index.html +++ b/tags/nginx/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/nullsfirst/index.html b/tags/nullsfirst/index.html index d7c94eff3a..c6861ef2a1 100644 --- a/tags/nullsfirst/index.html +++ b/tags/nullsfirst/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/openresty/index.html b/tags/openresty/index.html index 3f0a490fcc..344b291ba6 100644 --- a/tags/openresty/index.html +++ b/tags/openresty/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/php/index.html b/tags/php/index.html index 8b99a65ecc..f49596672f 100644 --- a/tags/php/index.html +++ b/tags/php/index.html @@ -333,7 +333,7 @@ @@ -371,7 +371,7 @@ diff --git a/tags/python/index.html b/tags/python/index.html index f9c8ec94f5..4a21f7a3c6 100644 --- a/tags/python/index.html +++ b/tags/python/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/read-view/index.html b/tags/read-view/index.html index 304334735c..96be1df8f2 100644 --- a/tags/read-view/index.html +++ b/tags/read-view/index.html @@ -217,6 +217,26 @@ 2020
+
+
+ + + +
+ +
+ +
+
+
@@ -330,7 +350,7 @@ @@ -368,7 +388,7 @@ diff --git a/tags/sort/index.html b/tags/sort/index.html index 8ef61ad9b4..6abd7ce2c5 100644 --- a/tags/sort/index.html +++ b/tags/sort/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/spark/index.html b/tags/spark/index.html index f1fc410666..45aadfb963 100644 --- a/tags/spark/index.html +++ b/tags/spark/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/swoole/index.html b/tags/swoole/index.html index 91d46ecfe1..bb01470df5 100644 --- a/tags/swoole/index.html +++ b/tags/swoole/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/uname/index.html b/tags/uname/index.html index 7ebda03e7f..b95d86d683 100644 --- a/tags/uname/index.html +++ b/tags/uname/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/websocket/index.html b/tags/websocket/index.html index e40b0ba647..240279cbb3 100644 --- a/tags/websocket/index.html +++ b/tags/websocket/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/分布式锁/index.html b/tags/分布式锁/index.html index 777b2f0c5a..4da00d184c 100644 --- a/tags/分布式锁/index.html +++ b/tags/分布式锁/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/单例/index.html b/tags/单例/index.html index 4c8159c90c..6f52798934 100644 --- a/tags/单例/index.html +++ b/tags/单例/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/博客,文章/index.html b/tags/博客,文章/index.html index 9ff75ed83f..b03fe2388a 100644 --- a/tags/博客,文章/index.html +++ b/tags/博客,文章/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/发行版/index.html b/tags/发行版/index.html index d1ad21bc26..deac1d9830 100644 --- a/tags/发行版/index.html +++ b/tags/发行版/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/寄生虫/index.html b/tags/寄生虫/index.html index a1ab05f823..285e36d167 100644 --- a/tags/寄生虫/index.html +++ b/tags/寄生虫/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/年终总结/index.html b/tags/年终总结/index.html index f9120f3dec..0c223418dc 100644 --- a/tags/年终总结/index.html +++ b/tags/年终总结/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/幻读/index.html b/tags/幻读/index.html index 9288a01500..6783dbb4ac 100644 --- a/tags/幻读/index.html +++ b/tags/幻读/index.html @@ -217,6 +217,26 @@ 2020 + +
@@ -310,7 +330,7 @@ @@ -348,7 +368,7 @@ diff --git a/tags/影评/index.html b/tags/影评/index.html index fc026ca542..5c5b8764b5 100644 --- a/tags/影评/index.html +++ b/tags/影评/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/排序/index.html b/tags/排序/index.html index a16f7d4780..275db28dfc 100644 --- a/tags/排序/index.html +++ b/tags/排序/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/数据结构/index.html b/tags/数据结构/index.html index 6307978d19..2b221d5f75 100644 --- a/tags/数据结构/index.html +++ b/tags/数据结构/index.html @@ -217,6 +217,26 @@ 2020 + +
@@ -394,29 +414,6 @@ -
-
-
- 2019 -
- - @@ -427,6 +424,9 @@ + @@ -493,7 +493,7 @@ @@ -531,7 +531,7 @@ diff --git a/tags/数据结构/page/2/index.html b/tags/数据结构/page/2/index.html new file mode 100644 index 0000000000..2b700b2cae --- /dev/null +++ b/tags/数据结构/page/2/index.html @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tag: 数据结构 | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

What hurts more, the pain of hard work or the pain of regret?

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+ + + + +
+
+
+ + +
+ + + + + +
+
+
+

数据结构 + Tag +

+
+ + +
+ 2019 +
+ + + +
+
+ + + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/源码/index.html b/tags/源码/index.html index 84cba9e425..4d1f29871f 100644 --- a/tags/源码/index.html +++ b/tags/源码/index.html @@ -217,6 +217,26 @@ 2020 + +
@@ -394,29 +414,6 @@ -
-
-
- 2019 -
- - @@ -427,6 +424,9 @@ + @@ -493,7 +493,7 @@ @@ -531,7 +531,7 @@ diff --git a/tags/源码/page/2/index.html b/tags/源码/page/2/index.html new file mode 100644 index 0000000000..00c7f7dee4 --- /dev/null +++ b/tags/源码/page/2/index.html @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tag: 源码 | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

What hurts more, the pain of hard work or the pain of regret?

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+ + + + +
+
+
+ + +
+ + + + + +
+
+
+

源码 + Tag +

+
+ + +
+ 2019 +
+ + + +
+
+ + + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/生活/index.html b/tags/生活/index.html index 14934aca5a..cefa48d416 100644 --- a/tags/生活/index.html +++ b/tags/生活/index.html @@ -330,7 +330,7 @@ @@ -368,7 +368,7 @@ diff --git a/tags/设计模式/index.html b/tags/设计模式/index.html index ad55c3273c..0038078b9d 100644 --- a/tags/设计模式/index.html +++ b/tags/设计模式/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@ diff --git a/tags/读后感/index.html b/tags/读后感/index.html index d8e654274e..e16be37b82 100644 --- a/tags/读后感/index.html +++ b/tags/读后感/index.html @@ -310,7 +310,7 @@ @@ -348,7 +348,7 @@