From 800b1e1b84e7c88a6b0157feb88ebfa53c8c828b Mon Sep 17 00:00:00 2001 From: nicksxs Date: Sun, 26 Apr 2020 22:20:44 +0800 Subject: [PATCH] Site updated: 2020-04-26 22:20:34 --- 2014/12/23/my-new-post/index.html | 8 +- 2014/12/24/MFC 模态对话框/index.html | 12 +- 2014/12/30/Clone-Graph-Part-I/index.html | 22 +- 2015/01/04/Path-Sum/index.html | 16 +- 2015/01/14/Two-Sum/index.html | 14 +- .../index.html | 14 +- 2015/03/11/Number-Of-1-Bits/index.html | 16 +- 2015/03/11/Reverse-Bits/index.html | 14 +- 2015/03/13/Reverse-Integer/index.html | 14 +- 2015/04/14/Add-Two-Number/index.html | 14 +- 2015/04/15/Leetcode-No-3/index.html | 14 +- 2015/06/22/invert-binary-tree/index.html | 14 +- 2016/07/13/swoole-websocket-test/index.html | 8 +- 2016/08/14/34-Search-for-a-Range/index.html | 14 +- 2016/08/14/docker-mysql-cluster/index.html | 14 +- 2016/09/29/binary-watch/index.html | 14 +- .../minimum-size-subarray-sum-209/index.html | 14 +- 2016/10/12/summary-ranges-228/index.html | 14 +- .../index.html | 8 +- 2017/03/28/spark-little-tips/index.html | 8 +- 2017/04/25/rabbitmq-tips/index.html | 8 +- 2017/05/09/ambari-summary/index.html | 8 +- 2019/06/18/openresty/index.html | 8 +- .../23/AbstractQueuedSynchronizer/index.html | 8 +- 2019/12/07/JVM-G1-Part-1/index.html | 12 +- 2019/12/10/Redis-Part-1/index.html | 8 +- 2019/12/18/1Q84读后感/index.html | 8 +- .../聊聊Java中的单例模式/index.html | 8 +- 2019/12/26/redis数据结构介绍/index.html | 20 +- .../04/redis数据结构介绍二/index.html | 16 +- .../10/redis数据结构介绍三/index.html | 20 +- .../19/redis数据结构介绍四/index.html | 20 +- .../20/redis数据结构介绍五/index.html | 16 +- .../22/redis数据结构介绍六/index.html | 20 +- 2020/02/01/2019年终总结/index.html | 8 +- 2020/02/09/G1收集器概述/index.html | 12 +- 2020/02/16/Maven实用小技巧/index.html | 8 +- .../index.html | 8 +- 2020/03/01/寄生虫观后感/index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../index.html | 8 +- .../echo命令的一个小技巧/index.html | 12 +- 2020/04/05/Comparator使用小记/index.html | 12 +- 2020/04/12/redis系列介绍七/index.html | 20 +- 2020/04/18/redis系列介绍八/index.html | 25 +- 2020/04/26/聊聊-mysql-的-MVCC/index.html | 771 ++++++++++++++++++ 404.html | 8 +- 404/index.html | 8 +- archives/2014/12/index.html | 10 +- archives/2014/index.html | 10 +- archives/2015/01/index.html | 10 +- archives/2015/03/index.html | 10 +- archives/2015/04/index.html | 10 +- archives/2015/06/index.html | 10 +- archives/2015/index.html | 10 +- archives/2016/07/index.html | 10 +- archives/2016/08/index.html | 10 +- archives/2016/09/index.html | 10 +- archives/2016/10/index.html | 10 +- archives/2016/11/index.html | 10 +- archives/2016/index.html | 10 +- archives/2017/03/index.html | 10 +- archives/2017/04/index.html | 10 +- archives/2017/05/index.html | 10 +- archives/2017/index.html | 10 +- archives/2019/06/index.html | 10 +- archives/2019/09/index.html | 10 +- archives/2019/12/index.html | 10 +- archives/2019/index.html | 10 +- archives/2020/01/index.html | 10 +- archives/2020/02/index.html | 10 +- archives/2020/03/index.html | 10 +- archives/2020/04/index.html | 30 +- archives/2020/index.html | 50 +- archives/2020/page/2/index.html | 30 +- archives/index.html | 50 +- archives/page/2/index.html | 50 +- archives/page/3/index.html | 50 +- archives/page/4/index.html | 50 +- archives/page/5/index.html | 30 +- atom.xml | 128 +-- baidu_verify_Gl8jtoDV4z.html | 8 +- baidusitemap.xml | 25 +- categories/C/Mysql/index.html | 583 +++++++++++++ categories/C/Redis/index.html | 8 +- categories/C/index.html | 28 +- categories/Java/Design-Patterns/index.html | 8 +- categories/Java/GC/index.html | 8 +- categories/Java/JVM/index.html | 8 +- categories/Java/Maven/index.html | 8 +- categories/Java/Singleton/index.html | 8 +- categories/Java/index.html | 209 ++--- categories/Java/集合/index.html | 8 +- categories/Linux/index.html | 8 +- categories/Linux/命令/echo/index.html | 8 +- categories/Linux/命令/index.html | 8 +- categories/Mysql/index.html | 583 +++++++++++++ categories/Mysql/数据结构/index.html | 583 +++++++++++++ categories/Mysql/源码/index.html | 583 +++++++++++++ categories/Redis/Distributed-Lock/index.html | 8 +- categories/Redis/index.html | 8 +- categories/Redis/数据结构/index.html | 8 +- categories/Redis/源码/index.html | 8 +- categories/data-analysis/index.html | 8 +- categories/docker/index.html | 180 ++-- categories/docker/介绍/index.html | 8 +- categories/docker/发行版本/index.html | 8 +- categories/index.html | 12 +- categories/leetcode/index.html | 8 +- categories/leetcode/page/2/index.html | 8 +- categories/nginx/index.html | 8 +- categories/php/index.html | 8 +- categories/持续集成/index.html | 8 +- categories/生活/index.html | 8 +- .../生活/年终总结/2019/index.html | 8 +- categories/生活/年终总结/index.html | 8 +- categories/生活/影评/2020/index.html | 8 +- categories/生活/影评/index.html | 8 +- categories/读后感/index.html | 8 +- categories/读后感/村上春树/index.html | 8 +- css/main.css | 2 +- index.html | 270 +++--- leancloud_counter_security_urls.json | 2 +- lib/pace/README.html | 8 +- page/2/index.html | 290 +++---- page/3/index.html | 223 ++--- page/4/index.html | 212 +++-- page/5/index.html | 112 ++- sitemap.xml | 23 +- tags/2019/index.html | 8 +- tags/Comparator/index.html | 8 +- tags/Design-Patterns/index.html | 8 +- tags/Distributed-Lock/index.html | 8 +- tags/Dockerfile/index.html | 8 +- tags/G1/index.html | 8 +- tags/GC/index.html | 8 +- tags/Garbage-First-Collector/index.html | 8 +- tags/Gogs/index.html | 8 +- tags/JVM/index.html | 8 +- tags/Maven/index.html | 8 +- tags/Redis/index.html | 8 +- tags/Singleton/index.html | 8 +- tags/Stream/index.html | 8 +- tags/Webhook/index.html | 8 +- tags/aqs/index.html | 8 +- tags/c/index.html | 337 ++++---- tags/c/page/2/index.html | 8 +- tags/cgroup/index.html | 8 +- tags/cluster/index.html | 8 +- tags/docker/index.html | 180 ++-- tags/echo/index.html | 8 +- tags/hadoop/index.html | 8 +- tags/im/index.html | 8 +- tags/index.html | 12 +- tags/java/index.html | 173 ++-- tags/leetcode/index.html | 8 +- tags/leetcode/page/2/index.html | 8 +- tags/linux/index.html | 8 +- tags/mfc/index.html | 8 +- tags/mq/index.html | 8 +- tags/mvcc/index.html | 583 +++++++++++++ tags/mysql/index.html | 31 +- tags/namespace/index.html | 8 +- tags/nginx/index.html | 8 +- tags/nullsfirst/index.html | 8 +- tags/openresty/index.html | 8 +- tags/php/index.html | 8 +- tags/python/index.html | 8 +- tags/read-view/index.html | 583 +++++++++++++ tags/sort/index.html | 8 +- tags/spark/index.html | 8 +- tags/swoole/index.html | 8 +- tags/uname/index.html | 8 +- tags/websocket/index.html | 8 +- tags/分布式锁/index.html | 8 +- tags/单例/index.html | 8 +- tags/博客,文章/index.html | 8 +- tags/发行版/index.html | 8 +- tags/寄生虫/index.html | 8 +- tags/年终总结/index.html | 8 +- tags/影评/index.html | 8 +- tags/排序/index.html | 8 +- tags/数据结构/index.html | 28 +- tags/源码/index.html | 28 +- tags/生活/index.html | 8 +- tags/设计模式/index.html | 8 +- tags/读后感/index.html | 8 +- 188 files changed, 6568 insertions(+), 2025 deletions(-) create mode 100644 2020/04/26/聊聊-mysql-的-MVCC/index.html create mode 100644 categories/C/Mysql/index.html create mode 100644 categories/Mysql/index.html create mode 100644 categories/Mysql/数据结构/index.html create mode 100644 categories/Mysql/源码/index.html create mode 100644 tags/mvcc/index.html create mode 100644 tags/read-view/index.html diff --git a/2014/12/23/my-new-post/index.html b/2014/12/23/my-new-post/index.html index c689241738..140e0b07e3 100644 --- a/2014/12/23/my-new-post/index.html +++ b/2014/12/23/my-new-post/index.html @@ -421,20 +421,20 @@
- 46 + 47 posts
- 34 + 38 categories
- 58 + 60 tags
@@ -459,7 +459,7 @@
diff --git a/2014/12/24/MFC 模态对话框/index.html b/2014/12/24/MFC 模态对话框/index.html index b12af3021f..96aef674e6 100644 --- a/2014/12/24/MFC 模态对话框/index.html +++ b/2014/12/24/MFC 模态对话框/index.html @@ -300,10 +300,10 @@ @@ -444,20 +444,20 @@
- 46 + 47 posts
- 34 + 38 categories
- 58 + 60 tags
@@ -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 a9af4b79af..b168a84fcb 100644 --- a/2014/12/30/Clone-Graph-Part-I/index.html +++ b/2014/12/30/Clone-Graph-Part-I/index.html @@ -35,8 +35,8 @@ - + @@ -293,19 +293,19 @@ @@ -349,8 +349,8 @@ @@ -497,20 +500,20 @@
- 46 + 47 posts
- 34 + 38 categories
- 58 + 60 tags
@@ -535,7 +538,7 @@
diff --git a/2020/04/26/聊聊-mysql-的-MVCC/index.html b/2020/04/26/聊聊-mysql-的-MVCC/index.html new file mode 100644 index 0000000000..afd7052b06 --- /dev/null +++ b/2020/04/26/聊聊-mysql-的-MVCC/index.html @@ -0,0 +1,771 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 聊聊 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 的事务隔离级别吗,“额 O__O …,不太清楚”,完了之后我就去网上找相关的文章,找到了这篇MySQL 四种事务隔离级的说明, 文章写得特别好,看了这个就懂了各个事务隔离级别都是啥,不过看了这个之后多思考一下的话还是会发现问题,这么神奇的事务隔离级别是怎么实现的呢

+

其中 innodb 的事务隔离用到了标题里说到的 mvcc,Multiversion concurrency control, 直译过来就是多版本并发控制,先不讲这个究竟是个啥,考虑下如果纯猜测,这个事务隔离级别应该会是怎么样实现呢,愚钝的我想了下,可以在事务开始的时候拷贝一个表,这个可以支持 RR 级别,RC 级别就不支持了,而且要是个非常大的表,想想就不可行

+

腆着脸说虽然这个不可行,但是思路是对的,具体实行起来需要做一系列(肥肠多)的改动,首先根据我的理解,其实这个拷贝一个表是变成拷贝一条记录,但是如果有多个事务,那就得拷贝多次,这个问题其实可以借助版本管理系统来解释,在用版本管理系统,git 之类的之前,很原始的可能是开发完一个功能后,就打个压缩包用时间等信息命名,然后如果后面要找回这个就直接用这个压缩包的就行了,后来有了 svn,git 中心式和分布式的版本管理系统,它的一个特点是粒度可以控制到文件和代码行级别,对应的我们的 mysql 事务是不是也可以从一开始预想的表级别细化到行的级别,可能之前很多人都了解过,数据库的一行记录除了我们用户自定义的字段,还有一些额外的字段,去源码data0type.h里捞一下

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* Precise data types for system columns and the length of those columns;
NOTE: the values must run from 0 up in the order given! All codes must
be less than 256 */
#define DATA_ROW_ID 0 /* row id: a 48-bit integer */
#define DATA_ROW_ID_LEN 6 /* stored length for row id */

/** Transaction id: 6 bytes */
constexpr size_t DATA_TRX_ID = 1;

/** Transaction ID type size in bytes. */
constexpr size_t DATA_TRX_ID_LEN = 6;

/** Rollback data pointer: 7 bytes */
constexpr size_t DATA_ROLL_PTR = 2;

/** Rollback data pointer type size in bytes. */
constexpr size_t DATA_ROLL_PTR_LEN = 7;
+ +

一个是 DATA_ROW_ID,这个是在数据没指定主键的时候会生成一个隐藏的,如果用户有指定主键就是主键了

+

一个是 DATA_TRX_ID,这个表示这条记录的事务 ID

+

还有一个是 DATA_ROLL_PTR 指向回滚段的指针

+

指向的回滚段其实就是我们常说的 undo log,这里面的具体结构就是个链表,在 mvcc 里会使用到这个,还有就是这个 DATA_TRX_ID,每条记录都记录了这个事务 ID,表示的是这条记录的当前值是被哪个事务修改的,下面就扯回事务了,我们知道 Read Uncommitted, 其实用不到隔离,直接读取当前值就好了,到了 Read Committed 级别,我们要让事务读取到提交过的值,mysql 使用了一个叫 read view 的玩意,它里面有这些值是我们需要注意的,

+

m_low_limit_id, 这个是 read view 创建时最大的活跃事务 id

+

m_up_limit_id, 这个是 read view 创建时最小的活跃事务 id

+

m_ids, 这个是 read view 创建时所有的活跃事务 id 数组

+

m_creator_trx_id 这个是当前记录的创建事务 id

+

判断事务的可见性主要的逻辑是这样,

+
    +
  1. 当记录的事务 id 小于最小活跃事务 id,说明是可见的,
  2. +
  3. 如果记录的事务 id 等于当前事务 id,说明是自己的更改,可见
  4. +
  5. 如果记录的事务 id 大于最大的活跃事务 id, 不可见
  6. +
  7. 如果记录的事务 id 介于 m_low_limit_idm_up_limit_id 之间,则要判断它是否在 m_ids 中,如果在,不可见,如果不在,表示已提交,可见
    具体的代码捞一下看看
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    /** Check whether the changes by id are visible.
    @param[in] id transaction id to check against the view
    @param[in] name table name
    @return whether the view sees the modifications of id. */
    bool changes_visible(trx_id_t id, const table_name_t &name) const
    MY_ATTRIBUTE((warn_unused_result)) {
    ut_ad(id > 0);

    if (id < m_up_limit_id || id == m_creator_trx_id) {
    return (true);
    }

    check_trx_id_sanity(id, name);

    if (id >= m_low_limit_id) {
    return (false);

    } else if (m_ids.empty()) {
    return (true);
    }

    const ids_t::value_type *p = m_ids.data();

    return (!std::binary_search(p, p + m_ids.size(), id));
    }
    +剩下来一点是啥呢,就是 Read CommittedRepeated Read 也不一样,那前面说的 read view 都能支持吗,又是怎么支持呢,假如这个 read view 是在事务一开始就创建,那好像能支持的只是 RR 事务隔离级别,其实呢,这是通过创建 read view的时机,对于 RR 级别,就是在事务的第一个 select 语句是创建,对于 RC 级别,是在每个 select 语句执行前都是创建一次,那样就可以保证能读到所有已提交的数据
  8. +
+ +
+ + + + + + + + +
+
请我喝杯咖啡
+ + +
+ + + +
+ +
+ + + + +
+ + + + + + +
+ + +
+
+ +
+
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/404.html b/404.html index c7f5959a43..a74e2ffc20 100644 --- a/404.html +++ b/404.html @@ -320,20 +320,20 @@
- 46 + 47 posts
- 34 + 38 categories
- 58 + 60 tags
@@ -358,7 +358,7 @@
diff --git a/404/index.html b/404/index.html index 3c8128d517..434267c4df 100644 --- a/404/index.html +++ b/404/index.html @@ -307,20 +307,20 @@
- 46 + 47 posts
- 34 + 38 categories
- 58 + 60 tags
@@ -345,7 +345,7 @@
diff --git a/archives/2014/12/index.html b/archives/2014/12/index.html index 7d4f338ecd..205152cdfd 100644 --- a/archives/2014/12/index.html +++ b/archives/2014/12/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -350,20 +350,20 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2014/index.html b/archives/2014/index.html index 0840df3f0f..78bcd54d12 100644 --- a/archives/2014/index.html +++ b/archives/2014/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -350,20 +350,20 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2015/01/index.html b/archives/2015/01/index.html index b2235aad11..e1faafa6a7 100644 --- a/archives/2015/01/index.html +++ b/archives/2015/01/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -350,20 +350,20 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2015/03/index.html b/archives/2015/03/index.html index 2b3072e657..e2f554430d 100644 --- a/archives/2015/03/index.html +++ b/archives/2015/03/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -350,20 +350,20 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2015/04/index.html b/archives/2015/04/index.html index 9f3cf1906a..99fd90793f 100644 --- a/archives/2015/04/index.html +++ b/archives/2015/04/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -330,20 +330,20 @@ @@ -368,7 +368,7 @@ diff --git a/archives/2015/06/index.html b/archives/2015/06/index.html index 6a52edecbc..499d14c35d 100644 --- a/archives/2015/06/index.html +++ b/archives/2015/06/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2015/index.html b/archives/2015/index.html index 284243e792..8b3663fd8c 100644 --- a/archives/2015/index.html +++ b/archives/2015/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -470,20 +470,20 @@ @@ -508,7 +508,7 @@ diff --git a/archives/2016/07/index.html b/archives/2016/07/index.html index 68f3e15bef..8e98d0bb09 100644 --- a/archives/2016/07/index.html +++ b/archives/2016/07/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2016/08/index.html b/archives/2016/08/index.html index 463ea23dd8..6f8a616a32 100644 --- a/archives/2016/08/index.html +++ b/archives/2016/08/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -330,20 +330,20 @@ @@ -368,7 +368,7 @@ diff --git a/archives/2016/09/index.html b/archives/2016/09/index.html index 8ae34a19e7..b23a1ea6fc 100644 --- a/archives/2016/09/index.html +++ b/archives/2016/09/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2016/10/index.html b/archives/2016/10/index.html index bd9b0ce058..2e3833aaff 100644 --- a/archives/2016/10/index.html +++ b/archives/2016/10/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -330,20 +330,20 @@ @@ -368,7 +368,7 @@ diff --git a/archives/2016/11/index.html b/archives/2016/11/index.html index 9a231c66c7..97d80e5864 100644 --- a/archives/2016/11/index.html +++ b/archives/2016/11/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2016/index.html b/archives/2016/index.html index 5d22b48996..e381a36141 100644 --- a/archives/2016/index.html +++ b/archives/2016/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -430,20 +430,20 @@ @@ -468,7 +468,7 @@ diff --git a/archives/2017/03/index.html b/archives/2017/03/index.html index 290f7d57d4..7752622522 100644 --- a/archives/2017/03/index.html +++ b/archives/2017/03/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2017/04/index.html b/archives/2017/04/index.html index 7f1c18b3cc..f930777320 100644 --- a/archives/2017/04/index.html +++ b/archives/2017/04/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2017/05/index.html b/archives/2017/05/index.html index 5fad69c091..4e29aa0876 100644 --- a/archives/2017/05/index.html +++ b/archives/2017/05/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2017/index.html b/archives/2017/index.html index be4159d111..1037e4e3fd 100644 --- a/archives/2017/index.html +++ b/archives/2017/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -350,20 +350,20 @@ @@ -388,7 +388,7 @@ diff --git a/archives/2019/06/index.html b/archives/2019/06/index.html index b2ee598a52..ba2b935baa 100644 --- a/archives/2019/06/index.html +++ b/archives/2019/06/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2019/09/index.html b/archives/2019/09/index.html index a54c2fd22b..297b837862 100644 --- a/archives/2019/09/index.html +++ b/archives/2019/09/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/archives/2019/12/index.html b/archives/2019/12/index.html index 0452e5b6b2..159fe9920f 100644 --- a/archives/2019/12/index.html +++ b/archives/2019/12/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -390,20 +390,20 @@ @@ -428,7 +428,7 @@ diff --git a/archives/2019/index.html b/archives/2019/index.html index 7879c1ac6e..20b36af542 100644 --- a/archives/2019/index.html +++ b/archives/2019/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -430,20 +430,20 @@ @@ -468,7 +468,7 @@ diff --git a/archives/2020/01/index.html b/archives/2020/01/index.html index 825b92d00e..6086a40a81 100644 --- a/archives/2020/01/index.html +++ b/archives/2020/01/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -390,20 +390,20 @@ @@ -428,7 +428,7 @@ diff --git a/archives/2020/02/index.html b/archives/2020/02/index.html index 688cef8eba..2788d5dede 100644 --- a/archives/2020/02/index.html +++ b/archives/2020/02/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -370,20 +370,20 @@ @@ -408,7 +408,7 @@ diff --git a/archives/2020/03/index.html b/archives/2020/03/index.html index 33d94f171f..15445ffad4 100644 --- a/archives/2020/03/index.html +++ b/archives/2020/03/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -390,20 +390,20 @@ @@ -428,7 +428,7 @@ diff --git a/archives/2020/04/index.html b/archives/2020/04/index.html index 6d5e35c0a2..a26a0d6177 100644 --- a/archives/2020/04/index.html +++ b/archives/2020/04/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -350,20 +370,20 @@ @@ -388,7 +408,7 @@ diff --git a/archives/2020/index.html b/archives/2020/index.html index 821165229f..ff21dc6c30 100644 --- a/archives/2020/index.html +++ b/archives/2020/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -396,26 +416,6 @@
- -
@@ -493,20 +493,20 @@ @@ -531,7 +531,7 @@ diff --git a/archives/2020/page/2/index.html b/archives/2020/page/2/index.html index 92afcf0e0d..0f7cd18294 100644 --- a/archives/2020/page/2/index.html +++ b/archives/2020/page/2/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -433,20 +453,20 @@ @@ -471,7 +491,7 @@ diff --git a/archives/index.html b/archives/index.html index 42a24f9f57..e8c5d2f950 100644 --- a/archives/index.html +++ b/archives/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -396,26 +416,6 @@
- -
@@ -493,20 +493,20 @@ @@ -531,7 +531,7 @@ diff --git a/archives/page/2/index.html b/archives/page/2/index.html index 10a2b161b3..e201317876 100644 --- a/archives/page/2/index.html +++ b/archives/page/2/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2020
+ +
@@ -399,26 +419,6 @@
- -
@@ -496,20 +496,20 @@ @@ -534,7 +534,7 @@ diff --git a/archives/page/3/index.html b/archives/page/3/index.html index c1ea981769..f437e51726 100644 --- a/archives/page/3/index.html +++ b/archives/page/3/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2019
+ +
@@ -402,26 +422,6 @@
- -
@@ -499,20 +499,20 @@ @@ -537,7 +537,7 @@ diff --git a/archives/page/4/index.html b/archives/page/4/index.html index ddaaacf5e0..786d55f07e 100644 --- a/archives/page/4/index.html +++ b/archives/page/4/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2016
+ +
@@ -399,26 +419,6 @@
- -
@@ -496,20 +496,20 @@ @@ -534,7 +534,7 @@ diff --git a/archives/page/5/index.html b/archives/page/5/index.html index c62728c4d6..36aa4aa417 100644 --- a/archives/page/5/index.html +++ b/archives/page/5/index.html @@ -208,7 +208,7 @@
- OK! 46 posts in total. Keep on posting. + OK! 47 posts in total. Keep on posting.
@@ -216,6 +216,26 @@ 2015
+ +
@@ -416,20 +436,20 @@ @@ -454,7 +474,7 @@ diff --git a/atom.xml b/atom.xml index 4cc2c70602..65adc8863e 100644 --- a/atom.xml +++ b/atom.xml @@ -6,7 +6,7 @@ - 2020-04-19T09:28:42.555Z + 2020-04-26T14:16:52.788Z https://nicksxs.me/ @@ -16,6 +16,49 @@ Hexo + + 聊聊 mysql 的 MVCC + + https://nicksxs.me/2020/04/26/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC/ + 2020-04-26T14:14:01.000Z + 2020-04-26T14:16:52.788Z + + + + + + + + <p>很久以前,有位面试官问到,你知道 mysql 的事务隔离级别吗,“额 O__O …,不太清楚”,完了之后我就去网上找相关的文章,找到了这篇<a href="https://www.cnblogs.com/zhoujinyi/p/3437475.html" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + redis系列介绍八-淘汰策略 @@ -38,14 +81,14 @@ - - - + + + @@ -77,14 +120,14 @@ - - - + + + @@ -397,10 +440,10 @@ - - + + @@ -476,14 +519,14 @@ - - - + + + @@ -515,14 +558,14 @@ - - - + + + @@ -554,14 +597,14 @@ - - - + + + @@ -594,14 +637,14 @@ - - - + + + @@ -633,14 +676,14 @@ - - - + + + @@ -672,14 +715,14 @@ - - - + + + @@ -726,35 +769,4 @@ - - 村上春树《1Q84》读后感 - - https://nicksxs.me/2019/12/18/1Q84%E8%AF%BB%E5%90%8E%E6%84%9F/ - 2019-12-17T16:33:09.000Z - 2019-12-18T16:08:42.000Z - - - - - - - - <p>看完了村上春树的《1Q84》,这应该是第五本看的他的书了,继 - - - - - - - - - - - - - - - - - diff --git a/baidu_verify_Gl8jtoDV4z.html b/baidu_verify_Gl8jtoDV4z.html index b30bd0f72a..29b831bc5c 100644 --- a/baidu_verify_Gl8jtoDV4z.html +++ b/baidu_verify_Gl8jtoDV4z.html @@ -309,20 +309,20 @@ @@ -347,7 +347,7 @@ diff --git a/baidusitemap.xml b/baidusitemap.xml index d92628fb60..bcfcf75350 100644 --- a/baidusitemap.xml +++ b/baidusitemap.xml @@ -1,6 +1,9 @@ + https://nicksxs.me/2020/04/26/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC/ + 2020-04-26 + https://nicksxs.me/2020/04/18/redis%E7%B3%BB%E5%88%97%E4%BB%8B%E7%BB%8D%E5%85%AB/ 2020-04-19 @@ -45,33 +48,33 @@ https://nicksxs.me/2020/01/19/redis%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%BB%8B%E7%BB%8D%E5%9B%9B/ 2020-01-18 - - https://nicksxs.me/2015/01/14/Two-Sum/ - 2020-01-12 https://nicksxs.me/2019/12/10/Redis-Part-1/ 2020-01-12 - https://nicksxs.me/2016/11/10/php-abstract-class-and-interface/ + https://nicksxs.me/2015/01/14/Two-Sum/ 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/2016/08/14/docker-mysql-cluster/ + 2020-01-12 https://nicksxs.me/2017/05/09/ambari-summary/ 2020-01-12 @@ -105,18 +108,18 @@ https://nicksxs.me/2016/07/13/swoole-websocket-test/ 2020-01-12 - - https://nicksxs.me/2015/06/22/invert-binary-tree/ - 2020-01-12 https://nicksxs.me/2016/10/12/summary-ranges-228/ 2020-01-12 - https://nicksxs.me/2015/01/04/Path-Sum/ + https://nicksxs.me/2015/06/22/invert-binary-tree/ 2020-01-12 https://nicksxs.me/2017/04/25/rabbitmq-tips/ 2020-01-12 + + https://nicksxs.me/2015/01/04/Path-Sum/ + 2020-01-12 https://nicksxs.me/2015/03/11/Number-Of-1-Bits/ 2020-01-12 diff --git a/categories/C/Mysql/index.html b/categories/C/Mysql/index.html new file mode 100644 index 0000000000..42cd22c11a --- /dev/null +++ b/categories/C/Mysql/index.html @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Category: Mysql | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

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

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

Mysql + Category +

+
+ + +
+ 2020 +
+ + + +
+
+ + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/C/Redis/index.html b/categories/C/Redis/index.html index 1ee86d0fac..61610c9a54 100644 --- a/categories/C/Redis/index.html +++ b/categories/C/Redis/index.html @@ -473,20 +473,20 @@ @@ -511,7 +511,7 @@ diff --git a/categories/C/index.html b/categories/C/index.html index 9949381989..022cbe6dd6 100644 --- a/categories/C/index.html +++ b/categories/C/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -473,20 +493,20 @@ @@ -511,7 +531,7 @@ diff --git a/categories/Java/Design-Patterns/index.html b/categories/Java/Design-Patterns/index.html index ff3314ecd0..67290dc17c 100644 --- a/categories/Java/Design-Patterns/index.html +++ b/categories/Java/Design-Patterns/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Java/GC/index.html b/categories/Java/GC/index.html index e88ddf9d03..75f46c6eca 100644 --- a/categories/Java/GC/index.html +++ b/categories/Java/GC/index.html @@ -333,20 +333,20 @@ @@ -371,7 +371,7 @@ diff --git a/categories/Java/JVM/index.html b/categories/Java/JVM/index.html index 1988a75ac2..d396f407df 100644 --- a/categories/Java/JVM/index.html +++ b/categories/Java/JVM/index.html @@ -333,20 +333,20 @@ @@ -371,7 +371,7 @@ diff --git a/categories/Java/Maven/index.html b/categories/Java/Maven/index.html index 54ab71dadb..f5d2f98e6f 100644 --- a/categories/Java/Maven/index.html +++ b/categories/Java/Maven/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Java/Singleton/index.html b/categories/Java/Singleton/index.html index b5464a826e..8c4fa1b5e8 100644 --- a/categories/Java/Singleton/index.html +++ b/categories/Java/Singleton/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Java/index.html b/categories/Java/index.html index 97a154356e..9887f0526e 100644 --- a/categories/Java/index.html +++ b/categories/Java/index.html @@ -29,7 +29,7 @@ - + @@ -40,7 +40,7 @@ - + - Category: Java | Nicksxs's Blog + Category: java | Nicksxs's Blog + + + + + + +if (CONFIG.page.isPost) { + if (CONFIG.hostname !== location.hostname) return; + addCount(Counter); + } else if (document.querySelectorAll('.post-title-link').length >= 1) { + showTime(Counter); + } + } + + let api_server = app_id.slice(-9) !== '-MdYXbMMI' ? server_url : `https://${app_id.slice(0, 8).toLowerCase()}.api.lncldglobal.com`; + + if (api_server) { + fetchData(api_server); + } else { + fetch('https://app-router.leancloud.cn/2/route?appId=' + app_id) + .then(response => response.json()) + .then(({ api_server }) => { + fetchData('https://' + api_server); + }); + } + })(); + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Category: Mysql | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

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

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

Mysql + Category +

+
+ + +
+ 2020 +
+ + + +
+
+ + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/Mysql/数据结构/index.html b/categories/Mysql/数据结构/index.html new file mode 100644 index 0000000000..b8bea4156e --- /dev/null +++ b/categories/Mysql/数据结构/index.html @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Category: 数据结构 | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

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

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

数据结构 + Category +

+
+ + +
+ 2020 +
+ + + +
+
+ + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/Mysql/源码/index.html b/categories/Mysql/源码/index.html new file mode 100644 index 0000000000..b3fc17c8d1 --- /dev/null +++ b/categories/Mysql/源码/index.html @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Category: 源码 | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

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

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

源码 + Category +

+
+ + +
+ 2020 +
+ + + +
+
+ + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/categories/Redis/Distributed-Lock/index.html b/categories/Redis/Distributed-Lock/index.html index cc48239eaf..91ff23e394 100644 --- a/categories/Redis/Distributed-Lock/index.html +++ b/categories/Redis/Distributed-Lock/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/categories/Redis/index.html b/categories/Redis/index.html index 28932347c3..2a89ab7ebe 100644 --- a/categories/Redis/index.html +++ b/categories/Redis/index.html @@ -473,20 +473,20 @@ @@ -511,7 +511,7 @@ diff --git a/categories/Redis/数据结构/index.html b/categories/Redis/数据结构/index.html index 3f51d5da15..87ba3cc776 100644 --- a/categories/Redis/数据结构/index.html +++ b/categories/Redis/数据结构/index.html @@ -453,20 +453,20 @@ @@ -491,7 +491,7 @@ diff --git a/categories/Redis/源码/index.html b/categories/Redis/源码/index.html index 0c9b2dcd19..72f84504aa 100644 --- a/categories/Redis/源码/index.html +++ b/categories/Redis/源码/index.html @@ -453,20 +453,20 @@ @@ -491,7 +491,7 @@ diff --git a/categories/data-analysis/index.html b/categories/data-analysis/index.html index 2c0c05267c..e8fe2001d8 100644 --- a/categories/data-analysis/index.html +++ b/categories/data-analysis/index.html @@ -330,20 +330,20 @@ @@ -368,7 +368,7 @@ diff --git a/categories/docker/index.html b/categories/docker/index.html index 8e635452f7..e620aa7264 100644 --- a/categories/docker/index.html +++ b/categories/docker/index.html @@ -29,7 +29,7 @@ - + @@ -40,7 +40,7 @@ - + - Category: docker | Nicksxs's Blog + Category: Docker | Nicksxs's Blog - - - - - - -id.slice(0, 8).toLowerCase()}.api.lncldglobal.com`; - - if (api_server) { - fetchData(api_server); - } else { - fetch('https://app-router.leancloud.cn/2/route?appId=' + app_id) - .then(response => response.json()) - .then(({ api_server }) => { - fetchData('https://' + api_server); - }); - } - })(); - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tag: C++ | Nicksxs's Blog + Tag: c++ | Nicksxs's Blog - - - - - - -ecurity` option to `false`.'); - - } - }) - .catch(error => { - console.error('LeanCloud Counter Error', error); - }); - } - - function showTime(Counter) { - var visitors = document.querySelectorAll('.leancloud_visitors'); - var entries = [...visitors].map(element => { - return decodeURI(element.id); - }); - - Counter('get', '/classes/Counter?where=' + encodeURIComponent(JSON.stringify({ url: { '$in': entries } }))) - .then(response => response.json()) - .then(({ results }) => { - for (let url of entries) { - let target = results.find(item => item.url === url); - leancloudSelector(url).innerText = target ? target.time : 0; - } - }) - .catch(error => { - console.error('LeanCloud Counter Error', error); - }); - } - - let { app_id, app_key, server_url } = {"enable":true,"app_id":"ysza182Vghlqjdt7QiwGLLJy-gzGzoHsz","app_key":"s9GDqbn7gnGGkusf66YRVccw","server_url":"https://leancloud.cn","security":true}; - function fetchData(api_server) { - var Counter = (method, url, data) => { - return fetch(`${api_server}/1.1${url}`, { - method, - headers: { - 'X-LC-Id' : app_id, - 'X-LC-Key' : app_key, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(data) - }); - }; - if (CONFIG.page.isPost) { - if (CONFIG.hostname !== location.hostname) return; - addCount(Counter); - } else if (document.querySelectorAll('.post-title-link').length >= 1) { - showTime(Counter); - } - } - - let api_server = app_id.slice(-9) !== '-MdYXbMMI' ? server_url : `https://${app_id.slice(0, 8).toLowerCase()}.api.lncldglobal.com`; - - if (api_server) { - fetchData(api_server); - } else { - fetch('https://app-router.leancloud.cn/2/route?appId=' + app_id) - .then(response => response.json()) - .then(({ api_server }) => { - fetchData('https://' + api_server); - }); - } - })(); - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tag: docker | Nicksxs's Blog + Tag: Docker | Nicksxs's Blog - - - - - - -${app_id.slice(0, 8).toLowerCase()}.api.lncldglobal.com`; - - if (api_server) { - fetchData(api_server); - } else { - fetch('https://app-router.leancloud.cn/2/route?appId=' + app_id) - .then(response => response.json()) - .then(({ api_server }) => { - fetchData('https://' + api_server); - }); - } - })(); - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tag: Java | Nicksxs's Blog + Tag: java | Nicksxs's Blog + + + + + + +tchData('https://' + api_server); + }); + } + })(); + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tag: mvcc | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

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

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

mvcc + Tag +

+
+ + +
+ 2020 +
+ + + +
+
+ + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/mysql/index.html b/tags/mysql/index.html index ac1c050891..ce8365b320 100644 --- a/tags/mysql/index.html +++ b/tags/mysql/index.html @@ -213,6 +213,29 @@
+
+ 2020 +
+ +
2016
@@ -310,20 +333,20 @@ @@ -348,7 +371,7 @@ diff --git a/tags/namespace/index.html b/tags/namespace/index.html index 9d7cb42cde..dd0132ec14 100644 --- a/tags/namespace/index.html +++ b/tags/namespace/index.html @@ -350,20 +350,20 @@ @@ -388,7 +388,7 @@ diff --git a/tags/nginx/index.html b/tags/nginx/index.html index 143a69dc09..5e247817da 100644 --- a/tags/nginx/index.html +++ b/tags/nginx/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/nullsfirst/index.html b/tags/nullsfirst/index.html index c025af819a..6afdcce06a 100644 --- a/tags/nullsfirst/index.html +++ b/tags/nullsfirst/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/openresty/index.html b/tags/openresty/index.html index 142d4e1ff7..891fa364b9 100644 --- a/tags/openresty/index.html +++ b/tags/openresty/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/php/index.html b/tags/php/index.html index c1ef0a67d6..ce8e185f3b 100644 --- a/tags/php/index.html +++ b/tags/php/index.html @@ -333,20 +333,20 @@ @@ -371,7 +371,7 @@ diff --git a/tags/python/index.html b/tags/python/index.html index fc3a0285df..812f3925f2 100644 --- a/tags/python/index.html +++ b/tags/python/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/read-view/index.html b/tags/read-view/index.html new file mode 100644 index 0000000000..56aff6a923 --- /dev/null +++ b/tags/read-view/index.html @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tag: read view | Nicksxs's Blog + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

Nicksxs's Blog

+ +
+

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

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

read view + Tag +

+
+ + +
+ 2020 +
+ + + +
+
+ + + + + + + + +
+ + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/sort/index.html b/tags/sort/index.html index 443f3ad18b..f32cc6cd69 100644 --- a/tags/sort/index.html +++ b/tags/sort/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/spark/index.html b/tags/spark/index.html index df3c337a7a..146124afa2 100644 --- a/tags/spark/index.html +++ b/tags/spark/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/swoole/index.html b/tags/swoole/index.html index 6de95accc0..11961c70d7 100644 --- a/tags/swoole/index.html +++ b/tags/swoole/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/uname/index.html b/tags/uname/index.html index 1d563885f4..fc7e4d02ab 100644 --- a/tags/uname/index.html +++ b/tags/uname/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/websocket/index.html b/tags/websocket/index.html index a22c7c44e8..2bd9ae0514 100644 --- a/tags/websocket/index.html +++ b/tags/websocket/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/分布式锁/index.html b/tags/分布式锁/index.html index 0d325300d6..05a30d578c 100644 --- a/tags/分布式锁/index.html +++ b/tags/分布式锁/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/单例/index.html b/tags/单例/index.html index d92c87ab60..84a049316d 100644 --- a/tags/单例/index.html +++ b/tags/单例/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/博客,文章/index.html b/tags/博客,文章/index.html index f6e0574b7c..f206756d95 100644 --- a/tags/博客,文章/index.html +++ b/tags/博客,文章/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/发行版/index.html b/tags/发行版/index.html index 14a7e28a5d..be4c3a3390 100644 --- a/tags/发行版/index.html +++ b/tags/发行版/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/寄生虫/index.html b/tags/寄生虫/index.html index 20040c2763..8c4f0e9c7c 100644 --- a/tags/寄生虫/index.html +++ b/tags/寄生虫/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/年终总结/index.html b/tags/年终总结/index.html index 5a237ce028..ddb407b4d3 100644 --- a/tags/年终总结/index.html +++ b/tags/年终总结/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/影评/index.html b/tags/影评/index.html index 693cf01785..10c445e8c2 100644 --- a/tags/影评/index.html +++ b/tags/影评/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/排序/index.html b/tags/排序/index.html index 2cb70de721..e6873beaed 100644 --- a/tags/排序/index.html +++ b/tags/排序/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/数据结构/index.html b/tags/数据结构/index.html index 077699c58d..a5b244c6b4 100644 --- a/tags/数据结构/index.html +++ b/tags/数据结构/index.html @@ -217,6 +217,26 @@ 2020
+ +
@@ -453,20 +473,20 @@ @@ -491,7 +511,7 @@ diff --git a/tags/源码/index.html b/tags/源码/index.html index 9846dd6f6f..b9a925cfe3 100644 --- a/tags/源码/index.html +++ b/tags/源码/index.html @@ -217,6 +217,26 @@ 2020
+
+
+ + + +
+ +
+ +
+
+
@@ -453,20 +473,20 @@ @@ -491,7 +511,7 @@ diff --git a/tags/生活/index.html b/tags/生活/index.html index 4af1623950..5bc489491f 100644 --- a/tags/生活/index.html +++ b/tags/生活/index.html @@ -330,20 +330,20 @@ @@ -368,7 +368,7 @@ diff --git a/tags/设计模式/index.html b/tags/设计模式/index.html index c74d2ed9cd..249975e8cf 100644 --- a/tags/设计模式/index.html +++ b/tags/设计模式/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@ diff --git a/tags/读后感/index.html b/tags/读后感/index.html index cebdd5b022..316a0b1a27 100644 --- a/tags/读后感/index.html +++ b/tags/读后感/index.html @@ -310,20 +310,20 @@ @@ -348,7 +348,7 @@