<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Hao Chen&#39;s Blog</title>
  
  <subtitle>cighao@gmail.com</subtitle>
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://cighao.com/"/>
  <updated>2024-02-03T05:58:27.446Z</updated>
  <id>http://cighao.com/</id>
  
  <author>
    <name>Hao Chen</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>数据库中的热点行优化 (SIGMOD&#39;21 Paper 解读)</title>
    <link href="http://cighao.com/2022/02/28/database-hotspot-optimization/"/>
    <id>http://cighao.com/2022/02/28/database-hotspot-optimization/</id>
    <published>2022-02-28T13:35:22.000Z</published>
    <updated>2024-02-03T05:58:27.446Z</updated>
    
    <content type="html"><![CDATA[<p>数据库中的热点指的是一小部分记录会被大量的事务频繁读写，这在并发控制时会造成大量的竞争。热点记录的更新在现实生活中非常常见，比如在电商场景中，秒杀或限购时，会存在大量事务短时间内频繁更新某一行数据，比如更新库存。本文接下来会先介绍 SIGMOD 2021 上的一篇优化热点竞争问题的论文，<a href="https://pages.cs.wisc.edu/~yxy/pubs/bamboo.pdf" target="_blank" rel="noopener">Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking</a>，接着再介绍在阿里云PolarDB中是如何优化热点行竞争的，最后会简单对比下这两种设计的异同。</p><a id="more"></a><h2 id="背景和问题介绍"><a href="#背景和问题介绍" class="headerlink" title="背景和问题介绍"></a>背景和问题介绍</h2><h3 id="1-1-Two-Phase-Locking-2PL"><a href="#1-1-Two-Phase-Locking-2PL" class="headerlink" title="1.1 Two-Phase Locking (2PL)"></a>1.1 Two-Phase Locking (2PL)</h3><p>2PL 被广泛用于并发控制。在 2PL 中，锁的类型分为两种， X 锁和 S 锁。对某个数据进行操作时，必须获得该数据对应的锁。2PL 将加锁和释放锁的过程分为两个阶段，<br>（1）加锁阶段：该阶段内只能进行加锁，不能释放任何锁。<br>（2）释放阶段：该阶段内只能释放锁，不能新加锁。<br>也就是说，2PL 要求一个事务一旦释放了某个锁，就不能再请求新的锁。</p><p>在实际的系统中，除非预先知道事务的整个处理流程，否则很难知道在什么时间点之后，该事务不会再读写数据（也就是不会再请求新的锁），也就是说第一阶段结束的时间点无法确定。所以，通常的做法是，事务完成整个处理流程之后，再进入到释放阶段开始释放锁。</p><h3 id="1-2-问题介绍"><a href="#1-2-问题介绍" class="headerlink" title="1.2 问题介绍"></a>1.2 问题介绍</h3><p>上面说到事务总是在完成的时候才开始释放锁，这就会导致一个问题，对于某些热点数据，在整个事务过程中会只被访问一小会，但是这个热点数据的锁需要到整个事务处理完才能释放，所有需要访问这个数据的其他事务都必须要等待这个事务处理完才能进行下去。</p><p>下图对比了在 2PL 中事务的加锁顺序和理想状态下的加锁顺序。</p><p><img src="/img/articles/hotspot-optimization/2pl_example.png" alt></p><p>左图（1）展示的是 2PL 的案例，T1，T2，T3这三个事务都想更新热点数据 A。但是在这三个事务中更新 A 的操作只占整个事务处理流程的一小部分。如果 T1 首先获得了 A 的 X 锁，这个时候 T2 和 T3 尝试获取 A 的 X 锁时将会发生冲突，必须进行等待。T1 更新完 A 后继续处理其他数据，最后提交整个事务时才释放 A 的 X 锁。如果此时T2 成功抢占到了 A 的 X 锁，T3 还需要继续等待，直到 T2 提交释放完 A 的 X 锁，T3 才可以开始执行。在这个例子中，更新 A 只是这三个事务中的一个小操作，但是 T2 需要等到 T1 提交完才可以执行，T3 需要等到 T2 提交完才可以继续执行。实际上，这三个事务完全是串行执行的。在非冲突的部分完全没有任何并行性。理论上，为了保证一致性，只要保证冲突数据的顺序执行就可以了，但是由于 2PL 的限制，导致了整个事务级别的串行执行。</p><p>上面的右图（2）展示了理想的情况，在理想状态下，T2 只需要等待 T1 更新完 A 之后，就可以继续更新 A，T3 只需要等待 T2 更新完 A 后就可以继续更新 A 了。也就是说，在这种情况下，只有更新 A 的这个操作需要顺序执行，在其他没有冲突的部分，这个三个事务还是可以并发执行的。</p><h3 id="1-3-目标和挑战"><a href="#1-3-目标和挑战" class="headerlink" title="1.3 目标和挑战"></a>1.3 目标和挑战</h3><p>这篇论文最主要的目标就是解决热点冲突时锁竞争的问题，实现上面右图中的理想模式。但是，为了实现理想的并发控制模式，面临着 2 个主要的挑战，<br>（1）理想状态下，T1 在事务提交前就释放了 A 的锁，导致 T2 读到了 T1 未提交的事务，这种情况下如何保证记录之间的依赖关系？<br>（2）理想状态下，T2 读到 T1 未提交的数据，而 T3 又读到了 T2 未提交的数据，在 T1 发生 abort 时，T2，T3 都需要 abort，如何减少系统中的这种级联 abort？</p><h2 id="设计和实现"><a href="#设计和实现" class="headerlink" title="设计和实现"></a>设计和实现</h2><h3 id="2-1-事务依赖关系的维护"><a href="#2-1-事务依赖关系的维护" class="headerlink" title="2.1 事务依赖关系的维护"></a>2.1 事务依赖关系的维护</h3><p>该论文提出了名为 Bamboo 的算法来解决上述的挑战。在 Bamboo 中引入了新的 <code>Retire()</code> 接口。针对锁的操作分为 <code>Lock()</code>，<code>Retire()</code> 和 <code>Release()</code> 这三个。 <code>Lock()</code> 和 <code>Release()</code> 维持原有的语义。<code>Retire()</code> 用以在事务提交之前释放锁。如下图中（1）所示，当某个事务更新完某个热点数据后，调用 <code>Retire()</code> “释放” 该锁，其他事务可以获取该锁。事务结束后，仍然需要调用 <code>Release()</code> 真正意义上去释放该锁。如果完全不调用 <code>Retire()</code> 则退化到了传统的 2PL 算法。</p><p><img src="/img/articles/hotspot-optimization/bamboo_lock.png" alt></p><p>上图中（2）展示了 Bamboo 中锁对象的结构。传统的 2PL 算法中，锁对象只包含 owners 列表（保存当前拥有该锁的事务）和 waiter 列表（保存当前等待该锁的事务）。在 Bamboo 中新增了 retired 列表，用来表示哪些事务在该锁上进行了 <code>Retire()</code> 操作。</p><p>如果一个事务调用了 <code>Retire()</code> ，会将该事务从 owner 列表移到 retired 列表。调用 <code>Release()</code> 时会将该事务从 retired 或 owner 列表中移除。事务进行 <code>Lock()</code> 操作判断加锁冲突时，只需要和 owner 中的事务进行冲突检测。</p><p>retired 列表最主要的作用就是维护了事务的依赖关系。如果没有 <code>Retire()</code>，事务 T1 更新完 A ，立刻释放锁，这个时候 T2 加锁更新 A。T2 读取了 T1 未提交的数据，如果 T1 最后没有提交而是回滚了，T2 如何处理？</p><p>利用 <code>Retire()</code> 接口和 retired 列表就可以很好的维护这种依赖关系。每个事务维护了一个引用数，用来记录它依赖其他事务的数量，该事务每次请求加锁时，如果成功加锁，需要和该锁的 retired 列表中的事务进行冲突检测，如果有冲突，引用数就加1，每有一个依赖的事务提交了，该引用数就减1。 只有当引用数为0的时候，该事务才可以被提交。如果某个事务回滚了，所有依赖它的事务都需要回滚。</p><h3 id="2-2-减少级联aborts"><a href="#2-2-减少级联aborts" class="headerlink" title="2.2 减少级联aborts"></a>2.2 减少级联aborts</h3><p>前面提到了如果一个事务abort了，所有依赖它的事务都需要abort。这样就会产生级联aborts，Bamboo 中使用 <code>Retire()</code> 会使得系统中存在更多的事务依赖关系，造成更严重的级联aborts。针对这个作者给了一些建议，如何来减少级联aborts。比如，<br>（1）在 <code>Retire()</code> 收益较少时就不进行 <code>Retire()</code>。通常来说，如果数据更新出现的位置越靠近事务结束的地方，<br><code>Retire()</code> 的收益就越小。<br>因为事务结束时总是会释放锁。锁释放提前的时间变短了，收益自然也就小了。论文中提出了一个 delta 的参数，<br>如果更新操作位于整个事务的后 delta 的部分，就不进行<code>Retire()</code>，而是等到事务结束时直接释放锁。</p><p>（2）减少 read-after-write 时造成的aborts。事务 Retire 锁之后会保存该数据的一个本地副本，<br>如果后续需要读当前数据，只需要从本地副本中读，而不需要abort已经更新了这个数据的其他事务。</p><p>作者还通过一系列的数据分析，详细分析了Bamboo在减少事务等待时间上的收益和级联aborts时的损失，通过理论分析得出 Bamboo 可以提升总的吞吐率。详细的分析过程就不在这里给出了，感兴趣的读者可以去看看原文。理论分析是需要基于很多假设的，结果也只有一些参考意义。</p><h2 id="实验分析"><a href="#实验分析" class="headerlink" title="实验分析"></a>实验分析</h2><p>作者在开源数据库 DBx1000中实现了Bamboo的这个算法。<br>原文中的实验结果非常丰富，对比了不同算法、不同工作负载下的加速比。但是由于篇幅限制，这里只给出了两组实验结果。如下图所示，图中的比较基准是基于 wound-wait 的 2PL （在图中简称为 WW）。</p><p><img src="/img/articles/hotspot-optimization/results.png" alt></p><p>上图中（1）横坐标表示的是不同客户端的线程数，也可以理解成工作负载的并发程度。纵坐标是Bamboo对比WW的加速比。图中三个不同颜色的线，表示每个事务中的操作数不同。在该图的负载中，只有 1 个 read-modify-write 的热点，该热点在事务的最开始，事务中的其他操作都是读操作，这种情况下 Bamboo 的收益应该是最高的。从图中我们也可以看到加速比随着线程数（并发数）不断增加而增加，Bamboo的加速比也在增加。最后趋于饱和，这个受限于机器本身的性能。而且事务中操作数越多时，加速比越高。因为热点数据是在每个事务的开始，事务的操作数越多，释放锁的时间就提前的越多，其他事务的等待时间的减少程度就越大。</p><p>上图中（2）展示的是热点位置不同时，Bamboo 和 WW 的吞吐率的对比。横坐标表示的是热点的位置，0表示热点在事务的开始，1表示热点在事务的结束位置，比如0.5表示的是热点在事务的中间位置。纵坐标表示的是吞吐率。这个结果也是符合预期的，热点位置越靠前，Bamboo性能提升就越多。如果热点在事务结束处，几乎没有提升了。因为这个时候Bamboo算法发现 retire 没有收益，就不会执行 retire。算法也就退化到了传统的 2PL。</p><h2 id="PolarDB中的热点优化"><a href="#PolarDB中的热点优化" class="headerlink" title="PolarDB中的热点优化"></a>PolarDB中的热点优化</h2><p>关于PolarDB热点行优化，前面也有一些文章已经介绍了，所以这里也不进行过于详细的介绍。<br>下面针对PolarDB热点优化的介绍也大量参考了前面的文章 <a href="https://help.aliyun.com/document_detail/178149.html" target="_blank" rel="noopener">https://help.aliyun.com/document_detail/178149.html</a>。</p><h3 id="4-1-设计"><a href="#4-1-设计" class="headerlink" title="4.1 设计"></a>4.1 设计</h3><p>在电商平台业务中，限购、秒杀是常用的促销手段。在这些场景下，大量对热点行的更新请求在极短时间间隔内到达后台数据库系统，必然造成严重的行锁竞争和等待，影响系统性能。<br>如果一个更新请求等待执行的时间变长，将会对业务层面产生显著负面影响。</p><p>针对上述问题，单纯提高计算机硬件配置已经无法满足这样的低延迟需求。因此PolarDB在数据库内核层进行了创新性的优化，不但能够自动识别热点行更新请求，而且将一定时间间隔内对同一数据行的更新操作进行分组，不同分组采用流水线的方式并行处理，通过这些优化，极大地提升了系统的性能。</p><p><img src="/img/articles/hotspot-optimization/polardb_hotspot.png" alt></p><p>上图展示了热点组提交的流程图。具体如下：</p><ul><li><p>（1）对于需要进行热点优化的SQL语句（用户可以在SQL语句中设置参数表示需要进行优化），首先会对更新的主键或唯一键进行hash，然后根据hash值将对应的请求放到队列中，也就是同一个队列中更新的都是相同的主键或唯一键。同一个组内的第一个更新操作为Leader，其读取目标数据行并且加锁，后续更新操作为Follower，对目标数据行加锁时，如果发现Leader已经持有行锁，不需要等待，直接获得行锁。这样一个组在只需要加一次锁，大大减少了锁竞争开销。当一个组加锁后在进行处理时，所有针对该行的更新操作都需要在队列中等待，等当前组提交完了，队列中的请求会形成一个行的组进行处理。也就是说对一行的操作来说，系统中总是存在两个组，一个组正在处理请求，另外一个组正在队列中。上一个组正在处理请求时，所有的新请求都放入到下一个组。当上一个组提交完了，当前队列中的所有请求形成一个新的组进行处理，后续的请求放入队列形成下一个组。有点类似于流水线的处理方式。</p></li><li><p>（2）PolarDB是以B-tree索引的方式管理数据的，每次执行查询时，都需要遍历索引才能定位到目标数据行，数据表越大，索引层级越多，遍历时间就越长。在前面提到的对更新操作进行分组的机制中，只有每组的Leader遍历索引定位数据行，之后把更新后的数据行缓存（row cache）在内存中，同组的Follower加锁成功后，直接从内存中读取目标数据行，而不需要再次遍历索引。这样一来，从整体上减少了索引遍历的次数和时间开销。</p></li></ul><h3 id="4-2-性能"><a href="#4-2-性能" class="headerlink" title="4.2 性能"></a>4.2 性能</h3><p>我们利用 sysbench 模拟了一个库存更新的场景。采用 8 核 CPU 32GB 内存规格的 PolarDB 实例进行测试。</p><p><img src="/img/articles/hotspot-optimization/polardb_results.png" alt></p><p>上面的实验室结果展示了 PolarDB 中不同线程数下开启热点行优化和没开启行优化的性能对比。左图展示的是吞吐，右图是延迟。我们发现随着线程数的增加，热点行优化的性能提升越来越大，最后趋于稳定。这主要是因为线程数越多，锁竞争越剧烈，使用热点行优化的收益越明显。</p><p>这两篇文章也有介绍如何在PolarDB中使用这个热点优化功能，同时也展示了一些测试结果，<br><a href="https://help.aliyun.com/document_detail/178149.html" target="_blank" rel="noopener">https://help.aliyun.com/document_detail/178149.html</a>，<a href="http://mysql.taobao.org/monthly/2020/02/03/" target="_blank" rel="noopener">http://mysql.taobao.org/monthly/2020/02/03/</a>。</p><h2 id="结束语"><a href="#结束语" class="headerlink" title="结束语"></a>结束语</h2><p>热点行的锁竞争问题是数据库中的一个常见问题。PolarDB 和 Bamboo 其实都是用了相似的思想进行优化。都是在热点行上，让一个事务可以读到另外一个事务未提交的数据。在 PolarDB 上通过组提交的方式来实现，本质上来说，在一个组中 follower 的事务读到了 leader 事务未提交的数据。Leader 拿到行锁后，follower就不需要再申请行锁，也就类似于 Bamboo 中一个事务更新完数据后就 retire lock，其他事务就可以直接加锁。但作为一款商业数据库，为了系统的稳定性，PolarDB 的做法也比较保守一些，默认热点行的优化是关闭的，需要用户在SQL语句中添加一些标记，告诉数据库当前更新需要被优化。而 Bamboo 作为学术研究，在算法设计方面也更加通用和激进一些，所有更新都可以提前释放锁，所有事务都可以读到其他事务未提交的数据，其实现是基于DBx1000这种实验型的DBMS来做的，其难度也会远小于在InnoDB引擎中实现。不过作为学术研究，确实应该需要更加大胆的尝试和创新。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;数据库中的热点指的是一小部分记录会被大量的事务频繁读写，这在并发控制时会造成大量的竞争。热点记录的更新在现实生活中非常常见，比如在电商场景中，秒杀或限购时，会存在大量事务短时间内频繁更新某一行数据，比如更新库存。本文接下来会先介绍 SIGMOD 2021 上的一篇优化热点竞争问题的论文，&lt;a href=&quot;https://pages.cs.wisc.edu/~yxy/pubs/bamboo.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking&lt;/a&gt;，接着再介绍在阿里云PolarDB中是如何优化热点行竞争的，最后会简单对比下这两种设计的异同。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Database" scheme="http://cighao.com/tags/Database/"/>
    
      <category term="论文阅读" scheme="http://cighao.com/tags/%E8%AE%BA%E6%96%87%E9%98%85%E8%AF%BB/"/>
    
  </entry>
  
  <entry>
    <title>NVMe SSD中namespace的介绍和创建</title>
    <link href="http://cighao.com/2020/04/12/create-nvme-namespace/"/>
    <id>http://cighao.com/2020/04/12/create-nvme-namespace/</id>
    <published>2020-04-12T13:35:22.000Z</published>
    <updated>2021-04-13T13:05:49.871Z</updated>
    
    <content type="html"><![CDATA[<h2 id="什么是namespace"><a href="#什么是namespace" class="headerlink" title="什么是namespace"></a>什么是namespace</h2><p>在NVMe技术中，namespace是主机软件可访问的逻辑块地址（LBA）的集合。namespace ID（NSID）是控制器对namespace访问的标识符。namespace不是块的物理隔离，而是主机软件可寻址的逻辑块的隔离。</p><p>在Linux中，每一个namespace在设备中都以唯一的标识符出现。如 <code>/dev/nvme0n1</code>表示controller 0的namespace 1。</p><a id="more"></a><p>主机软件将NVMe SSD分解为多个namespace的原因有很多：用于逻辑隔离，多租户，安全隔离（每个namespace单独加密），对某些namespace进行写保护，利用overprovisioning以提高写入性能和耐久性等。</p><p>默认情况下，在NVMe SSD上，namespace的大小等于制造商确定的LBA的大小。 每个namespace在主机软件中均作为单独的目标设备显示。</p><p><strong><em>Namespace Size (NSZE)</em></strong>：namespace包含的逻辑块的个数（从LBA 0到LBA <em>n-1</em>）</p><p><strong><em>Namespace Capacity (NCAP)</em></strong>：在任何时间点可以分配的最大逻辑块数</p><p><strong><em>Namespace Utilization (NUSE) </em></strong>：当前在名称空间中分配的逻辑块数</p><p>由于thin provisioning的缘故，size和capacity可以是不一样的。</p><h2 id="namespace的操作"><a href="#namespace的操作" class="headerlink" title="namespace的操作"></a>namespace的操作</h2><p>查看所有namespace: <code>nvme list</code></p><p>查看某个namespace: <code>nvme id-ns /dev/nvme0n1</code></p><p>创建新的namespace</p><p>（1）从controller上分离所有namespace:<code>nvme detach-ns /dev/nvme0 –-namespace-id=1 –-controllers=0</code></p><p>（2）删除分离掉的namespace: <code>nvme delete-ns /dev/nvme0 –-namespace-id=1</code></p><p>（3）创建新的namespace: <code>nvme create-ns /dev/nvme0 –s 11995709440 –c 1199570940 –f 0 –d 0 -m 0</code></p><p><code>nvme create-ns</code>的用法：</p><blockquote><p>Options:<br>[  –nsze=<num>, -s <num> ]           — size of ns<br>[  –ncap=<num>, -c <num> ]           — capacity of ns<br>[  –flbas=<num>, -f <num> ]          — FLBA size<br>[  –dps=<num>, -d <num> ]            — data protection capabilities<br>[  –nmic=<num>, -m <num> ]           — multipath and sharing capabilities<br>[  –block-size=<num>, -b <num> ]     — target block size<br>[  –timeout=<num>, -t <num> ]        — timeout value, in milliseconds  </num></num></num></num></num></num></num></num></num></num></num></num></num></num></p></blockquote><p>size和capacity的单位都是逻辑块的大小。</p><p>（4）绑定新的namespace到controller: <code>nvme attach-ns /dev/nvme0 –-namespace-id=1 –-controllers=0</code></p><p>（5）重置controller使更改可见: <code>nvme reset /dev/nvme0</code></p><p>（6）查看:<code>nvme list</code></p><p>原文：<a href="https://nvmexpress.org/resources/nvm-express-technology-features/nvme-namespaces/" target="_blank" rel="noopener">https://nvmexpress.org/resources/nvm-express-technology-features/nvme-namespaces/</a></p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;什么是namespace&quot;&gt;&lt;a href=&quot;#什么是namespace&quot; class=&quot;headerlink&quot; title=&quot;什么是namespace&quot;&gt;&lt;/a&gt;什么是namespace&lt;/h2&gt;&lt;p&gt;在NVMe技术中，namespace是主机软件可访问的逻辑块地址（LBA）的集合。namespace ID（NSID）是控制器对namespace访问的标识符。namespace不是块的物理隔离，而是主机软件可寻址的逻辑块的隔离。&lt;/p&gt;
&lt;p&gt;在Linux中，每一个namespace在设备中都以唯一的标识符出现。如 &lt;code&gt;/dev/nvme0n1&lt;/code&gt;表示controller 0的namespace 1。&lt;/p&gt;
    
    </summary>
    
    
      <category term="SSD" scheme="http://cighao.com/tags/SSD/"/>
    
      <category term="NVMe" scheme="http://cighao.com/tags/NVMe/"/>
    
  </entry>
  
  <entry>
    <title>快速搭建 L2TP VPN 服务器</title>
    <link href="http://cighao.com/2019/11/20/quickly-create-vpn-server/"/>
    <id>http://cighao.com/2019/11/20/quickly-create-vpn-server/</id>
    <published>2019-11-20T13:35:22.000Z</published>
    <updated>2019-11-20T13:41:26.763Z</updated>
    
    <content type="html"><![CDATA[<p>利用云服务器搭建 VPN</p><a id="more"></a><h3 id="一-下载"><a href="#一-下载" class="headerlink" title="一. 下载"></a>一. 下载</h3><p>运行</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://git.io/vpnsetup-centos -O vpnsetup.sh &amp;&amp; sudo sh vpnsetup.sh</span><br></pre></td></tr></table></figure><p>结束后会生成 </p><blockquote><p>Server IP: <strong>*</strong><br>IPsec PSK: <strong>*</strong><br>Username: <strong>*</strong><br>Password: <strong>*</strong></p></blockquote><p>直接用这个信息就可以登陆了，就是这么简单粗暴。</p><p>运行完成后，会在当前目录下生成 vpnsetup.sh。 你也可以在该文件内设置以上信息，这样生成的就不是随机的了。</p><p>启用 ipsec 服务以在启动时启动：<code>sudo systemctl enable ipsec</code></p><p>IPsec PSK 存在 /etc/ipsec.secrets 中，所有 VPN 用户共享相同的 IPsec PSK，可以通过更改行来设置新的。</p><h3 id="二-管理用户"><a href="#二-管理用户" class="headerlink" title="二. 管理用户"></a>二. 管理用户</h3><p>下载脚本：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh</span><br><span class="line"></span><br><span class="line">wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh</span><br></pre></td></tr></table></figure></p><p>添加用户:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo sh add_vpn_user.sh &apos;username&apos; &apos;password&apos;</span><br></pre></td></tr></table></figure></p><p>删除用户:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo sh del_vpn_user.sh &apos;username&apos;</span><br></pre></td></tr></table></figure></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;利用云服务器搭建 VPN&lt;/p&gt;
    
    </summary>
    
    
      <category term="计算机" scheme="http://cighao.com/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
    
      <category term="Tool" scheme="http://cighao.com/tags/Tool/"/>
    
  </entry>
  
  <entry>
    <title>SPDK 介绍(二)：SPDK 相关博客</title>
    <link href="http://cighao.com/2019/10/25/introduction-of-spdk-02-spdk-blogs/"/>
    <id>http://cighao.com/2019/10/25/introduction-of-spdk-02-spdk-blogs/</id>
    <published>2019-10-25T04:35:22.000Z</published>
    <updated>2019-10-26T21:03:31.892Z</updated>
    
    <content type="html"><![CDATA[<p>SPDK 相关博客</p><a id="more"></a><p>(1) 官网<br><a href="https://spdk.io" target="_blank" rel="noopener">https://spdk.io</a></p><p>(2) Accelerate Your NVMe Drives with SPDK<br><a href="https://software.intel.com/en-us/articles/accelerating-your-nvme-drives-with-spdk" target="_blank" rel="noopener">https://software.intel.com/en-us/articles/accelerating-your-nvme-drives-with-spdk</a></p><p>(3) NVMeDirect：超越SPDK<br><a href="http://www.ssdfans.com/blog/2017/08/03/nvmedirect%EF%BC%9A%E8%B6%85%E8%B6%8Aspdk1/3/" target="_blank" rel="noopener">http://www.ssdfans.com/blog/2017/08/03/nvmedirect%EF%BC%9A%E8%B6%85%E8%B6%8Aspdk1/3/</a></p><p>(4) 深入理解SPKD之三：重要API接口<br><a href="https://blog.51cto.com/xiamachao/2350486" target="_blank" rel="noopener">https://blog.51cto.com/xiamachao/2350486</a></p><p>(5) SPDK示例代码分析<br><a href="https://blog.csdn.net/zlarm/article/details/79151138" target="_blank" rel="noopener">https://blog.csdn.net/zlarm/article/details/79151138</a></p><p>(6) SPDK/NVMe存储技术分析<br><a href="https://www.cnblogs.com/vlhn/archive/2017/10.html" target="_blank" rel="noopener">https://www.cnblogs.com/vlhn/archive/2017/10.html</a><br><a href="https://www.cnblogs.com/vlhn/archive/2017/11.html" target="_blank" rel="noopener">https://www.cnblogs.com/vlhn/archive/2017/11.html</a><br><a href="https://www.cnblogs.com/vlhn/archive/2017/12.html" target="_blank" rel="noopener">https://www.cnblogs.com/vlhn/archive/2017/12.html</a><br><a href="https://www.cnblogs.com/vlhn/archive/2018/01.html" target="_blank" rel="noopener">https://www.cnblogs.com/vlhn/archive/2018/01.html</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;SPDK 相关博客&lt;/p&gt;
    
    </summary>
    
    
      <category term="SPDK" scheme="http://cighao.com/tags/SPDK/"/>
    
  </entry>
  
  <entry>
    <title>SPDK 介绍(一)：使用 FIO 测试 SPDK</title>
    <link href="http://cighao.com/2019/10/23/introduction-of-spdk-01-spdk-with-fio/"/>
    <id>http://cighao.com/2019/10/23/introduction-of-spdk-01-spdk-with-fio/</id>
    <published>2019-10-23T04:35:22.000Z</published>
    <updated>2019-10-23T20:29:45.893Z</updated>
    
    <content type="html"><![CDATA[<p>Storage Performance Development Kit (SPDK)提供了一组用于编写高性能、可伸缩、用户态存储应用程序的工具和库。</p><a id="more"></a><h3 id="一-安装-FIO"><a href="#一-安装-FIO" class="headerlink" title="一. 安装 FIO"></a>一. 安装 FIO</h3><p>下载 FIO 源码到 fio_dir 目录下， <code>git clone https://github.com/axboe/fio</code>, fio_dir 在这里只是举例，可以是其他目录.<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">cd fio &amp;&amp; git checkout fio-3.3</span><br><span class="line">./configure</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure></p><p>推荐使用 fio-3.3，最后也可以不 make install</p><h3 id="二-安装-SPDK"><a href="#二-安装-SPDK" class="headerlink" title="二. 安装 SPDK"></a>二. 安装 SPDK</h3><p>下载 spdk 到 spdk_dir 目录下(spdk_dir 在这里只是举例，可以是其他目录)。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">git clone https://github.com/spdk/spdk</span><br><span class="line">cd spdk</span><br><span class="line">git submodule update --init</span><br></pre></td></tr></table></figure></p><p>修改 <code>spdk/CONFIG</code> 文件中的 <code>CONFIG_FIO_PLUGIN=</code> 为 FIO 的路径。<br>编译:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">cd spdk</span><br><span class="line">./configure --with-fio=fio_dir/fio</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure></p><p><code>--with-fio=</code> 后面添加 fio 的目录。configure 后面可以再加其他配置，比如 <code>--with-shared</code> 会编译生成总的 <code>libspdk.so</code> 链接库，否则只会生成许多单个的链接库。<br><code>make install</code> 会把 spdk 安装到某个路径。比如 /usr/local/lib 之类的。可以自行查看，必须确保该路径在动态链接库的默认搜索路径中。可以自己设置链接库的搜索路径。</p><h3 id="三-利用-FIO-测试-SPDK"><a href="#三-利用-FIO-测试-SPDK" class="headerlink" title="三. 利用 FIO 测试 SPDK"></a>三. 利用 FIO 测试 SPDK</h3><p>修改测试用例 <code>spdk/examples/nvme/fio_plugin/fio_plugin/example_config.fio</code>, 添加 <code>filename</code>, 如</p><p><code>filename=trtype=PCIe traddr=0000.04.00.0 ns=1</code> 或者 <code>filename=trtype=RDMA adrfam=IPv4 traddr=192.168.100.8 trsvcid=4420 ns=1</code></p><p><code>traddr=0000.04.00.0</code> 的地址可以通过 <code>lspci | grep SSD</code> 查看</p><p>测试：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">LD_PRELOAD=spdk_dir/spdk/examples/nvme/fio_plugin/fio_plugin fio_dir/fio/fio example_config.fio</span><br></pre></td></tr></table></figure></p><p><br></p><h3 id="Reference"><a href="#Reference" class="headerlink" title="Reference"></a>Reference</h3><p><a href="https://github.com/spdk/spdk/tree/master/examples/nvme/fio_plugin" target="_blank" rel="noopener">https://github.com/spdk/spdk/tree/master/examples/nvme/fio_plugin</a></p><p><a href="https://github.com/spdk/spdk/issues/367" target="_blank" rel="noopener">https://github.com/spdk/spdk/issues/367</a></p><p><a href="https://www.jianshu.com/p/eeaf81ffb7b5" target="_blank" rel="noopener">https://www.jianshu.com/p/eeaf81ffb7b5</a></p><p><a href="https://github.com/spdk/spdk/issues/29" target="_blank" rel="noopener">https://github.com/spdk/spdk/issues/29</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;Storage Performance Development Kit (SPDK)提供了一组用于编写高性能、可伸缩、用户态存储应用程序的工具和库。&lt;/p&gt;
    
    </summary>
    
    
      <category term="SPDK" scheme="http://cighao.com/tags/SPDK/"/>
    
  </entry>
  
  <entry>
    <title>RocksDB 介绍（一）：相关博客</title>
    <link href="http://cighao.com/2019/10/22/introduction-of-rocksdb-01-blogs/"/>
    <id>http://cighao.com/2019/10/22/introduction-of-rocksdb-01-blogs/</id>
    <published>2019-10-22T04:35:22.000Z</published>
    <updated>2019-12-02T06:43:37.195Z</updated>
    
    <content type="html"><![CDATA[<h3 id="一-写操作"><a href="#一-写操作" class="headerlink" title="一. 写操作"></a>一. 写操作</h3><p>(1) RocksDB 写入流程详解<br><a href="https://zhuanlan.zhihu.com/p/33389807" target="_blank" rel="noopener">https://zhuanlan.zhihu.com/p/33389807</a> </p><p>(2) RocksDB——Put<br><a href="https://www.jianshu.com/p/daa18eebf6e1" target="_blank" rel="noopener">https://www.jianshu.com/p/daa18eebf6e1</a> </p><p>(3) RocksDB写入数据过程DBImpl::Write()源代码分析<br><a href="https://blog.csdn.net/wang_xijue/article/details/46521605" target="_blank" rel="noopener">https://blog.csdn.net/wang_xijue/article/details/46521605</a></p><a id="more"></a><p>(4) 并发写-RocksDB源码剖析(3)<br><a href="http://www.pandademo.com/2016/10/parallel-write-rocksdb-source-dissect-3/" target="_blank" rel="noopener">http://www.pandademo.com/2016/10/parallel-write-rocksdb-source-dissect-3/</a> </p><p>(5) Rocksdb的Put()<br><a href="http://www.leviathan.vip/2018/02/27/Rocksdb%E7%9A%84Put/" target="_blank" rel="noopener">http://www.leviathan.vip/2018/02/27/Rocksdb%E7%9A%84Put/</a> </p><p>(6) Rocksdb 代码学习 写流程2 （memtable写)<br><a href="https://blog.csdn.net/u014361034/article/details/62217744" target="_blank" rel="noopener">https://blog.csdn.net/u014361034/article/details/62217744</a> </p><p>(7) Rocksdb的Memtable<br><a href="http://www.leviathan.vip/2018/02/06/Rocksdb%E7%9A%84memtable/" target="_blank" rel="noopener">http://www.leviathan.vip/2018/02/06/Rocksdb%E7%9A%84memtable/</a> </p><h3 id="二-WAL"><a href="#二-WAL" class="headerlink" title="二. WAL"></a>二. WAL</h3><p>(1) RocksDB · WAL(WriteAheadLog)介绍<br><a href="http://mysql.taobao.org/monthly/2018/04/09/" target="_blank" rel="noopener">http://mysql.taobao.org/monthly/2018/04/09/</a> </p><p>(2)【Rocksdb实现及优化分析】 JoinBatchGroup<br><a href="http://kernelmaker.github.io/Rocksdb_Study_1" target="_blank" rel="noopener">http://kernelmaker.github.io/Rocksdb_Study_1</a></p><h3 id="三-读操作"><a href="#三-读操作" class="headerlink" title="三. 读操作"></a>三. 读操作</h3><p>(1) RocksDB · 数据的读取(一)<br><a href="http://mysql.taobao.org/monthly/2018/11/05/" target="_blank" rel="noopener">http://mysql.taobao.org/monthly/2018/11/05/</a> </p><p>(2) RocksDB · 数据的读取(二)<br><a href="http://mysql.taobao.org/monthly/2018/12/08/" target="_blank" rel="noopener">http://mysql.taobao.org/monthly/2018/12/08/</a> </p><h3 id="四-其他"><a href="#四-其他" class="headerlink" title="四. 其他"></a>四. 其他</h3><p>(1) 【RocksDB实现分析及优化】TransactionDB<br><a href="https://kernelmaker.github.io/transactiondb-intro" target="_blank" rel="noopener">https://kernelmaker.github.io/transactiondb-intro</a> </p><p>(2) 【Rocksdb实现分析及优化】enable_pipelined_write<br><a href="https://kernelmaker.github.io/Rocksdb_pipeline_write" target="_blank" rel="noopener">https://kernelmaker.github.io/Rocksdb_pipeline_write</a> </p><p>(3) rocksdb源码解析：log文件恢复<br><a href="https://blog.csdn.net/dongfengxueli/article/details/66975838" target="_blank" rel="noopener">https://blog.csdn.net/dongfengxueli/article/details/66975838</a></p><h3 id="五-C-相关"><a href="#五-C-相关" class="headerlink" title="五. C++ 相关"></a>五. C++ 相关</h3><p>(1) 理解 C++ 的 Memory Order<br><a href="http://senlinzhan.github.io/2017/12/04/cpp-memory-order/" target="_blank" rel="noopener">http://senlinzhan.github.io/2017/12/04/cpp-memory-order/</a> </p><h3 id="六-Transaction-相关"><a href="#六-Transaction-相关" class="headerlink" title="六. Transaction 相关"></a>六. Transaction 相关</h3><p>(1) TransactionDB源码分析<br><a href="https://yq.aliyun.com/articles/609664" target="_blank" rel="noopener">https://yq.aliyun.com/articles/609664</a></p><p>(2) WritePrepared Transactions<br><a href="https://github.com/facebook/rocksdb/wiki/WritePrepared-Transactions" target="_blank" rel="noopener">https://github.com/facebook/rocksdb/wiki/WritePrepared-Transactions</a></p><p>(3) WriteUnprepared Transactions<br><a href="https://github.com/facebook/rocksdb/wiki/WriteUnprepared-Transactions" target="_blank" rel="noopener">https://github.com/facebook/rocksdb/wiki/WriteUnprepared-Transactions</a></p><p>(4) Two Phase Commit<br><a href="https://github.com/facebook/rocksdb/wiki/Two-Phase-Commit-Implementation" target="_blank" rel="noopener">https://github.com/facebook/rocksdb/wiki/Two-Phase-Commit-Implementation</a></p><p>(5) TransactionDB介绍<br><a href="https://zhuanlan.zhihu.com/p/39427559" target="_blank" rel="noopener">https://zhuanlan.zhihu.com/p/39427559</a></p>]]></content>
    
    <summary type="html">
    
      &lt;h3 id=&quot;一-写操作&quot;&gt;&lt;a href=&quot;#一-写操作&quot; class=&quot;headerlink&quot; title=&quot;一. 写操作&quot;&gt;&lt;/a&gt;一. 写操作&lt;/h3&gt;&lt;p&gt;(1) RocksDB 写入流程详解&lt;br&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/33389807&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://zhuanlan.zhihu.com/p/33389807&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;(2) RocksDB——Put&lt;br&gt;&lt;a href=&quot;https://www.jianshu.com/p/daa18eebf6e1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.jianshu.com/p/daa18eebf6e1&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;(3) RocksDB写入数据过程DBImpl::Write()源代码分析&lt;br&gt;&lt;a href=&quot;https://blog.csdn.net/wang_xijue/article/details/46521605&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.csdn.net/wang_xijue/article/details/46521605&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="RocksDB" scheme="http://cighao.com/tags/RocksDB/"/>
    
  </entry>
  
  <entry>
    <title>Linux IO 相关资料</title>
    <link href="http://cighao.com/2019/09/29/blogs-about-linux-io/"/>
    <id>http://cighao.com/2019/09/29/blogs-about-linux-io/</id>
    <published>2019-09-29T13:35:22.000Z</published>
    <updated>2019-10-25T07:56:11.213Z</updated>
    
    <content type="html"><![CDATA[<p>(1) xfs文件系统磁盘布局<br><a href="http://www.lenky.info/archives/tag/xfs/page/2" target="_blank" rel="noopener">http://www.lenky.info/archives/tag/xfs/page/2</a></p><p>(2) Linux fsync和fdatasync系统调用实现分析（Ext4文件系统）<br><a href="https://blog.csdn.net/luckyapple1028/article/details/61413724" target="_blank" rel="noopener">https://blog.csdn.net/luckyapple1028/article/details/61413724</a></p><p>(3) 文件IO系统调用内幕<br><a href="https://lrita.github.io/2019/03/13/the-internal-of-file-syscall/" target="_blank" rel="noopener">https://lrita.github.io/2019/03/13/the-internal-of-file-syscall/</a></p><a id="more"></a><p>(4) 深入理解Fsync<br><a href="https://www.cnblogs.com/hustcat/p/3283955.html" target="_blank" rel="noopener">https://www.cnblogs.com/hustcat/p/3283955.html</a></p><p>(5) Linux Direct IO机制分析<br><a href="http://oenhan.com/ext3-fs-directio" target="_blank" rel="noopener">http://oenhan.com/ext3-fs-directio</a></p><p>(6) Linux 内核写文件流程<br><a href="http://oenhan.com/linux-kernel-write" target="_blank" rel="noopener">http://oenhan.com/linux-kernel-write</a></p><p>(7) Linux内核三驾马车之-IO管理<br><a href="https://blog.acean.vip/post/linux-kernel/gai-shu-linuxnei-he-san-jia-ma-che-zhi-ioguan-li#toc_29" target="_blank" rel="noopener">https://blog.acean.vip/post/linux-kernel/gai-shu-linuxnei-he-san-jia-ma-che-zhi-ioguan-li#toc_29</a></p><p>(8) 全链路分析数据落盘机制-文件系统层及块设备层<br><a href="http://blog.zw1m.com/tags/IO/" target="_blank" rel="noopener">http://blog.zw1m.com/tags/IO/</a></p><p>(9) Linux 中直接 I/O 机制的介绍<br><a href="https://www.ibm.com/developerworks/cn/linux/l-cn-directio/" target="_blank" rel="noopener">https://www.ibm.com/developerworks/cn/linux/l-cn-directio/</a></p><p>(10) direct IO中io合并的奇怪现象分析<br><a href="http://www.sysnote.org/2014/05/19/directio-merge/" target="_blank" rel="noopener">http://www.sysnote.org/2014/05/19/directio-merge/</a></p><p>(11) Linux 缓存写回机制<br><a href="http://oenhan.com/linux-cache-writeback" target="_blank" rel="noopener">http://oenhan.com/linux-cache-writeback</a></p><p>(12) 使用 FUSE 开发自己的文件系统<br><a href="https://www.ibm.com/developerworks/cn/linux/l-fuse/index.html" target="_blank" rel="noopener">https://www.ibm.com/developerworks/cn/linux/l-fuse/index.html</a></p><p>(13) Linux 内核的文件 Cache 管理机制介绍<br><a href="https://www.ibm.com/developerworks/cn/linux/l-cache/index.html" target="_blank" rel="noopener">https://www.ibm.com/developerworks/cn/linux/l-cache/index.html</a></p><p>(14) Linux Block Driver<br><a href="http://oliveryang.net/2016/04/linux-block-driver-basic-1/" target="_blank" rel="noopener">http://oliveryang.net/2016/04/linux-block-driver-basic-1/</a><br><a href="http://oliveryang.net/2016/04/linux-block-driver-basic-2/" target="_blank" rel="noopener">http://oliveryang.net/2016/04/linux-block-driver-basic-2/</a><br><a href="http://oliveryang.net/2016/04/linux-block-driver-basic-3/" target="_blank" rel="noopener">http://oliveryang.net/2016/04/linux-block-driver-basic-3/</a><br><a href="http://oliveryang.net/2016/04/linux-block-driver-basic-4/" target="_blank" rel="noopener">http://oliveryang.net/2016/04/linux-block-driver-basic-4/</a><br><a href="http://oliveryang.net/2016/10/linux-block-driver-basic-5/" target="_blank" rel="noopener">http://oliveryang.net/2016/10/linux-block-driver-basic-5/</a><br><a href="http://oliveryang.net/2016/10/linux-block-driver-basic-6/" target="_blank" rel="noopener">http://oliveryang.net/2016/10/linux-block-driver-basic-6/</a><br><a href="http://oliveryang.net/2016/10/linux-block-driver-basic-7/" target="_blank" rel="noopener">http://oliveryang.net/2016/10/linux-block-driver-basic-7/</a></p><p>(15) Linux File System<br><a href="http://oliveryang.net/2016/05/linux-file-system-basic-1/" target="_blank" rel="noopener">http://oliveryang.net/2016/05/linux-file-system-basic-1/</a><br><a href="http://oliveryang.net/2016/05/linux-file-system-basic-2/" target="_blank" rel="noopener">http://oliveryang.net/2016/05/linux-file-system-basic-2/</a><br><a href="http://oliveryang.net/2016/05/linux-file-system-basic-3/" target="_blank" rel="noopener">http://oliveryang.net/2016/05/linux-file-system-basic-3/</a><br><a href="http://oliveryang.net/2016/05/linux-file-system-basic-4/" target="_blank" rel="noopener">http://oliveryang.net/2016/05/linux-file-system-basic-4/</a><br><a href="http://oliveryang.net/2016/05/linux-file-system-basic-5/" target="_blank" rel="noopener">http://oliveryang.net/2016/05/linux-file-system-basic-5/</a></p><p>(16) 没有什么好神秘的: wait_on_page_bit<br><a href="https://www.cnblogs.com/honpey/p/4931962.html" target="_blank" rel="noopener">https://www.cnblogs.com/honpey/p/4931962.html</a></p><p>(17) Linux通用块设备层<br><a href="http://www.ilinuxkernel.com/files/Linux.Generic.Block.Layer.pdf" target="_blank" rel="noopener">http://www.ilinuxkernel.com/files/Linux.Generic.Block.Layer.pdf</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;(1) xfs文件系统磁盘布局&lt;br&gt;&lt;a href=&quot;http://www.lenky.info/archives/tag/xfs/page/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.lenky.info/archives/tag/xfs/page/2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(2) Linux fsync和fdatasync系统调用实现分析（Ext4文件系统）&lt;br&gt;&lt;a href=&quot;https://blog.csdn.net/luckyapple1028/article/details/61413724&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.csdn.net/luckyapple1028/article/details/61413724&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(3) 文件IO系统调用内幕&lt;br&gt;&lt;a href=&quot;https://lrita.github.io/2019/03/13/the-internal-of-file-syscall/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://lrita.github.io/2019/03/13/the-internal-of-file-syscall/&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="计算机" scheme="http://cighao.com/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
    
      <category term="Linux IO" scheme="http://cighao.com/tags/Linux-IO/"/>
    
  </entry>
  
  <entry>
    <title>Cassandra 介绍（三）：Commitlog 介绍（1）</title>
    <link href="http://cighao.com/2019/09/26/cassandra-introduction-03-commitlog-01/"/>
    <id>http://cighao.com/2019/09/26/cassandra-introduction-03-commitlog-01/</id>
    <published>2019-09-26T03:20:22.000Z</published>
    <updated>2019-09-26T06:34:45.211Z</updated>
    
    <content type="html"><![CDATA[<p>与 commitlog 相关的类如下：</p><p><img src="/img/articles/cassandra/03/image001.png" alt></p><a id="more"></a><h2 id="1-CommitLog-Service-线程后台-sync"><a href="#1-CommitLog-Service-线程后台-sync" class="headerlink" title="1. CommitLog Service 线程后台 sync"></a>1. CommitLog Service 线程后台 sync</h2><p>AbstractCommitLogService 类中的 start() 函数新建 SyncRunnable 线程，并运行该线程。</p><p><img src="/img/articles/cassandra/03/image002.png" alt></p><p>该线程运行的函数是 run(), run() 中不停调用 sync(). sync() 利用 parkNanos() 周期性进行 sync 操作， 但这只对 group 和 periodical 的 commitlog 有效，对于 batch 的 commitlog 会在 BatchCommitLogService 类的 maybeWaitForSync() 函数中显示调用 unpark() 唤醒线程。</p><p><img src="/img/articles/cassandra/03/image003.png" alt></p><h2 id="2-CommitLog-构建-CommitLog-Service-和-CommitLog-Manager"><a href="#2-CommitLog-构建-CommitLog-Service-和-CommitLog-Manager" class="headerlink" title="2. CommitLog 构建 CommitLog Service 和 CommitLog Manager"></a>2. CommitLog 构建 CommitLog Service 和 CommitLog Manager</h2><p>CommitLog 类中，利用 construct() 生成一个具体的 AbstractCommitLogService 类和一个 AbstractCommitLogSegmentManager 类。</p><p><img src="/img/articles/cassandra/03/image004.png" alt></p><p>executor 是一个具体的 AbstractCommitLogService 类， PeriodicCommitLogService, BatchCommitLogService 和 GroupCommitLogService 中的一个。</p><p>segmentManager 是一个具体的 AbstractCommitLogSegmentManager 类， CommitLogSegmentManagerCDC 和 CommitLogSegmentManagerStandard 中的一个。</p><p>最后 CommitLog 调用 start() 启动 segmentManager.start() 和 executor.start() </p><p>executor.start() 也就是调用 AbstractCommitLogService 的 start() 函数启动一个线程周期性执行 sync() 操作。</p><p>segmentManager.start() 也就是调用 AbstractCommitLogSegmentManager 的 start() 函数，启动一个后台线程分配 CommitLogSegment</p><p><img src="/img/articles/cassandra/03/image005.png" alt></p><h2 id="3-何时写-CommitLog"><a href="#3-何时写-CommitLog" class="headerlink" title="3. 何时写 CommitLog"></a>3. 何时写 CommitLog</h2><p><img src="/img/articles/cassandra/03/image006.png" alt></p><p>运行到 1341 行时的函数栈如下图所示。1341行新建了一个线程，在1347行时运行。</p><p><img src="/img/articles/cassandra/03/image007.png" alt></p><p>beginWrite() 中调用 CommitLog.instance.add(mutation) 写入 commitlog。</p><p><img src="/img/articles/cassandra/03/image008.png" alt></p><p>运行到 CommitLog.instance.add(mutation) 时的函数栈如下：</p><p><img src="/img/articles/cassandra/03/image009.png" alt></p><p>CommitLog.instance.add() 函数实现 commitlog 的提交</p><p><img src="/img/articles/cassandra/03/image010.png" alt></p><h2 id="4-等待-commitlog-持久化完成"><a href="#4-等待-commitlog-持久化完成" class="headerlink" title="4. 等待 commitlog 持久化完成"></a>4. 等待 commitlog 持久化完成</h2><p>上图中的 executor.finishWriteFor(alloc) 会调用 AbstractCommitLogService 的 finishWriteFor() , 从而调用相应子类的 maybeWaitForSync()。</p><p>BatchCommitLogService 中的 maybeWaitForSync() 函数会调用 requestExtraSync() 唤醒 sync 线程进行 sync。然后调用 awaitDiskSync() 等待 commitlog 持久化完成。</p><p><img src="/img/articles/cassandra/03/image011.png" alt></p><p>GroupCommitLogService 中的 maybeWaitForSync() 函数会调用 awaitDiskSync() 等待 commitlog 持久化完成, 依赖后台 sync 线程的周期性 sync 操作。</p><p><img src="/img/articles/cassandra/03/image012.png" alt></p><p>PeriodicCommitLogService中的 maybeWaitForSync() 函数， blockWhenSyncLagsNanos 是 periodic commitlog 的周期， expectedSyncTime = System.nanoTime() - blockWhenSyncLagsNanos，表示 expectedSyncTime 之前的 commitlog 应该要持久化完。 lastSyncedAt 表示上次持久化的时间。 调用 awaitSyncAt() 等待 expectedSyncTime 之前的 commitlong 持久化完。</p><p><img src="/img/articles/cassandra/03/image013.png" alt></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;与 commitlog 相关的类如下：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/articles/cassandra/03/image001.png&quot; alt&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="Cassandra" scheme="http://cighao.com/tags/Cassandra/"/>
    
  </entry>
  
  <entry>
    <title>Cassandra 介绍（二）：Blogs</title>
    <link href="http://cighao.com/2019/09/22/cassandra-introduction-02-blogs/"/>
    <id>http://cighao.com/2019/09/22/cassandra-introduction-02-blogs/</id>
    <published>2019-09-22T03:20:22.000Z</published>
    <updated>2019-10-02T06:18:28.708Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1-Data-model"><a href="#1-Data-model" class="headerlink" title="1. Data model"></a>1. Data model</h2><p><a href="https://blog.csdn.net/qiaojialin/article/details/78408511" target="_blank" rel="noopener">https://blog.csdn.net/qiaojialin/article/details/78408511</a></p><a id="more"></a><h2 id="2-Scource-code"><a href="#2-Scource-code" class="headerlink" title="2. Scource code"></a>2. Scource code</h2><p><a href="https://blog.csdn.net/hellohellohhhhh/article/details/78410379" target="_blank" rel="noopener">https://blog.csdn.net/hellohellohhhhh/article/details/78410379</a></p><p><a href="http://ju.outofmemory.cn/entry/116815" target="_blank" rel="noopener">http://ju.outofmemory.cn/entry/116815</a></p><p><a href="https://zqhxuyuan.github.io/2016/10/13/Cassandra-Code-Network/" target="_blank" rel="noopener">https://zqhxuyuan.github.io/2016/10/13/Cassandra-Code-Network/</a></p><p><a href="https://blog.csdn.net/xuqianghit/article/details/6943533" target="_blank" rel="noopener">https://blog.csdn.net/xuqianghit/article/details/6943533</a></p><p><a href="https://blog.longyb.com/2019/03/03/cassandra_write_path/" target="_blank" rel="noopener">https://blog.longyb.com/2019/03/03/cassandra_write_path/</a></p><p>Cassandra writes in depth. <a href="https://blog.softwaremill.com/cassandra-writes-in-depth-6ea8d7581eb" target="_blank" rel="noopener">https://blog.softwaremill.com/cassandra-writes-in-depth-6ea8d7581eb</a></p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;1-Data-model&quot;&gt;&lt;a href=&quot;#1-Data-model&quot; class=&quot;headerlink&quot; title=&quot;1. Data model&quot;&gt;&lt;/a&gt;1. Data model&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/qiaojialin/article/details/78408511&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.csdn.net/qiaojialin/article/details/78408511&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="Cassandra" scheme="http://cighao.com/tags/Cassandra/"/>
    
  </entry>
  
  <entry>
    <title>Cassandra 介绍（一）：Install and test with YCSB</title>
    <link href="http://cighao.com/2019/09/19/cassandra-introduction-01-install%20and%20test/"/>
    <id>http://cighao.com/2019/09/19/cassandra-introduction-01-install and test/</id>
    <published>2019-09-19T03:20:22.000Z</published>
    <updated>2019-10-06T07:06:28.137Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1-install-cassandra"><a href="#1-install-cassandra" class="headerlink" title="1. install cassandra"></a>1. install cassandra</h2><p><a href="https://blog.pythian.com/how-to-build-your-very-own-cassandra-4-0-release/" target="_blank" rel="noopener">https://blog.pythian.com/how-to-build-your-very-own-cassandra-4-0-release/</a></p><p>(1) Make sure you have your prerequisites</p><p>Java SDK 1.8 or Java 1.11 Open Source or Oracle<br>Ant 1.8<br>Git CLI client<br>Python &gt;=2.7&lt;3.0</p><a id="more"></a><p>(2) Download the GIT repository<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git clone https://gitbox.apache.org/repos/asf/cassandra.git</span><br></pre></td></tr></table></figure></p><p>(3) Build your new Cassandra release<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd cassandra</span><br><span class="line">ant</span><br></pre></td></tr></table></figure></p><p>(4) Run Cassandra<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd ./bin</span><br><span class="line">./cassandra</span><br></pre></td></tr></table></figure></p><p>(5) Have fun<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">./nodetool status</span><br><span class="line">./cqlsh</span><br></pre></td></tr></table></figure></p><p>(6) Some problems you may encounter:<br>(6.1) package org.apache.tools.ant.taskdefs.optional.junit does not exist</p><p>Solution: <code>sudo yum install ant-junit</code></p><h2 id="2-cpp-driver"><a href="#2-cpp-driver" class="headerlink" title="2. cpp driver:"></a>2. cpp driver:</h2><p><a href="https://docs.datastax.com/en/developer/cpp-driver/2.13/topics/building/" target="_blank" rel="noopener">https://docs.datastax.com/en/developer/cpp-driver/2.13/topics/building/</a></p><h2 id="3-ycsb"><a href="#3-ycsb" class="headerlink" title="3. ycsb"></a>3. ycsb</h2><p>(1) install (<a href="https://github.com/brianfrankcooper/YCSB" target="_blank" rel="noopener">https://github.com/brianfrankcooper/YCSB</a>)</p><p>YCSB requires the use of Maven 3. </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">git clone https://github.com/brianfrankcooper/YCSB.git</span><br><span class="line"># mvn -pl com.yahoo.ycsb:cassandra-binding -am clean package</span><br><span class="line">mvn -pl cassandra -am clean package</span><br></pre></td></tr></table></figure><p>(2) test </p><p><a href="https://github.com/brianfrankcooper/YCSB/tree/master/cassandra" target="_blank" rel="noopener">https://github.com/brianfrankcooper/YCSB/tree/master/cassandra</a><br><a href="https://blog.csdn.net/hs794502825/article/details/17334915" target="_blank" rel="noopener">https://blog.csdn.net/hs794502825/article/details/17334915</a></p><p>for cassandra:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"> ./cqlsh</span><br><span class="line">cqlsh&gt; create keyspace ycsb WITH REPLICATION = &#123;&apos;class&apos; : &apos;SimpleStrategy&apos;, &apos;replication_factor&apos;: 1 &#125;;</span><br><span class="line">cqlsh&gt; USE ycsb;</span><br><span class="line">cqlsh&gt; create table usertable (</span><br><span class="line">    y_id varchar primary key,</span><br><span class="line">    field0 varchar,</span><br><span class="line">    field1 varchar,</span><br><span class="line">    field2 varchar,</span><br><span class="line">    field3 varchar,</span><br><span class="line">    field4 varchar,</span><br><span class="line">    field5 varchar,</span><br><span class="line">    field6 varchar,</span><br><span class="line">    field7 varchar,</span><br><span class="line">    field8 varchar,</span><br><span class="line">    field9 varchar);</span><br></pre></td></tr></table></figure></p><p>for ycsb:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./bin/ycsb load cassandra-cql -P workloads/workloada -p hosts=localhost</span><br></pre></td></tr></table></figure></p><h2 id="4-Open-cassandra-in-IDEA"><a href="#4-Open-cassandra-in-IDEA" class="headerlink" title="4. Open cassandra in IDEA"></a>4. Open cassandra in IDEA</h2><p><a href="https://blog.csdn.net/qiaojialin/article/details/73558971" target="_blank" rel="noopener">https://blog.csdn.net/qiaojialin/article/details/73558971</a></p><p>(1) Download<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git clone https://gitbox.apache.org/repos/asf/cassandra.git</span><br></pre></td></tr></table></figure></p><p>(2) Generate idea files<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd cassandra</span><br><span class="line">ant generate-idea-files</span><br></pre></td></tr></table></figure></p><p>(3) Open in IDEA</p><p>Main class:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">org.apache.cassandra.service.CassandraDaemon</span><br></pre></td></tr></table></figure></p><p>VM options:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">-Dcassandra-foreground=yes </span><br><span class="line">-Dcassandra.config=file://$PROJECT_DIR$/conf/cassandra.yaml </span><br><span class="line">-Dcassandra.storagedir=$PROJECT_DIR$/data </span><br><span class="line">-Dlogback.configurationFile=file://$PROJECT_DIR$/conf/logback.xml </span><br><span class="line">-Dcassandra.logdir=$PROJECT_DIR$/data/logs </span><br><span class="line">-Djava.library.path=$PROJECT_DIR$/lib/sigar-bin </span><br><span class="line">-Dcom.sun.management.jmxremote </span><br><span class="line">-Dcom.sun.management.jmxremote.port=7199 </span><br><span class="line">-Dcom.sun.management.jmxremote.local.only=false </span><br><span class="line">-Dcom.sun.management.jmxremote.authenticate=false </span><br><span class="line">-Dcom.sun.management.jmxremote.ssl=false </span><br><span class="line">-ea </span><br><span class="line">-Xmx1G</span><br></pre></td></tr></table></figure></p><p>Use classpath of module: cassandra</p>]]></content>
    
    <summary type="html">
    
      &lt;h2 id=&quot;1-install-cassandra&quot;&gt;&lt;a href=&quot;#1-install-cassandra&quot; class=&quot;headerlink&quot; title=&quot;1. install cassandra&quot;&gt;&lt;/a&gt;1. install cassandra&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://blog.pythian.com/how-to-build-your-very-own-cassandra-4-0-release/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.pythian.com/how-to-build-your-very-own-cassandra-4-0-release/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(1) Make sure you have your prerequisites&lt;/p&gt;
&lt;p&gt;Java SDK 1.8 or Java 1.11 Open Source or Oracle&lt;br&gt;Ant 1.8&lt;br&gt;Git CLI client&lt;br&gt;Python &amp;gt;=2.7&amp;lt;3.0&lt;/p&gt;
    
    </summary>
    
    
      <category term="Cassandra" scheme="http://cighao.com/tags/Cassandra/"/>
    
  </entry>
  
  <entry>
    <title>阿里数据库内核月报（汇总）</title>
    <link href="http://cighao.com/2019/09/03/taobao-database-kernel/"/>
    <id>http://cighao.com/2019/09/03/taobao-database-kernel/</id>
    <published>2019-09-03T08:20:22.000Z</published>
    <updated>2022-02-27T07:48:11.277Z</updated>
    
    <content type="html"><![CDATA[<p>阿里数据库内核月报（汇总）</p><a id="more"></a><h3 id="2022-01"><a href="#2022-01" class="headerlink" title="2022/01"></a>2022/01</h3><p>2022/01/01  <a href="http://mysql.taobao.org/monthly/2022/01/01/" target="_blank" rel="noopener">Database · 理论基础 · B+树数据库加锁历史</a><br>2022/01/02  <a href="http://mysql.taobao.org/monthly/2022/01/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · Redo Log record编码格式</a><br>2022/01/03  <a href="http://mysql.taobao.org/monthly/2022/01/03/" target="_blank" rel="noopener">SQL Server · 引擎特性 · 从SQL Server看列式存储</a><br>2022/01/04  <a href="http://mysql.taobao.org/monthly/2022/01/04/" target="_blank" rel="noopener">MySQL · 源码分析 · TABLE信息的生命周期</a></p><h3 id="2021-12"><a href="#2021-12" class="headerlink" title="2021/12"></a>2021/12</h3><p>2021/12/01  <a href="http://mysql.taobao.org/monthly/2021/12/01/" target="_blank" rel="noopener">PostgreSQL · 引擎特性 · PostgreSQL 14 新特性浅析</a><br>2021/12/02  <a href="http://mysql.taobao.org/monthly/2021/12/02/" target="_blank" rel="noopener">MySQL · 引擎特性· InnoDB之UNDO LOG介绍</a><br>2021/12/03  <a href="http://mysql.taobao.org/monthly/2021/12/03/" target="_blank" rel="noopener">PolarDB · 引擎特性 · Nonblock add column</a><br>2021/12/04  <a href="http://mysql.taobao.org/monthly/2021/12/04/" target="_blank" rel="noopener">PolarDB · 引擎特性 · B-tree 并发控制优化</a></p><h3 id="2021-11"><a href="#2021-11" class="headerlink" title="2021/11"></a>2021/11</h3><p>2021/11/01  <a href="http://mysql.taobao.org/monthly/2021/11/01/" target="_blank" rel="noopener">PolarDB · 引擎特性· 闪回查询让历史随时可见</a><br>2021/11/02  <a href="http://mysql.taobao.org/monthly/2021/11/02/" target="_blank" rel="noopener">MySQL · 周边工具 · MySQL InnoDB inno_space 工具介绍</a><br>2021/11/03  <a href="http://mysql.taobao.org/monthly/2021/11/03/" target="_blank" rel="noopener">MySQL · 源码阅读· MySQL 如何响应 KILL</a></p><h3 id="2021-10"><a href="#2021-10" class="headerlink" title="2021/10"></a>2021/10</h3><p>2021/10/01  <a href="http://mysql.taobao.org/monthly/2021/10/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 庖丁解InnoDB之UNDO LOG</a><br>2021/10/02  <a href="http://mysql.taobao.org/monthly/2021/10/02/" target="_blank" rel="noopener">数据库系统 · 事物并发控制 · Two-phase Lock Protocol</a><br>2021/10/03  <a href="http://mysql.taobao.org/monthly/2021/10/03/" target="_blank" rel="noopener">MySQL · 源码分析 · BLOB字段UPDATE流程分析</a><br>2021/10/04  <a href="http://mysql.taobao.org/monthly/2021/10/04/" target="_blank" rel="noopener">MySQL · 源码分析·  跟着MySQL 8.0 学 C++：scope_guard</a><br>2021/10/05  <a href="http://mysql.taobao.org/monthly/2021/10/05/" target="_blank" rel="noopener">MySQL · 源码分析 · CSV 引擎详解</a></p><h3 id="2021-09"><a href="#2021-09" class="headerlink" title="2021/09"></a>2021/09</h3><p>2021/09/01  <a href="http://mysql.taobao.org/monthly/2021/09/01/" target="_blank" rel="noopener">MySQL · 源码分析 · 事务锁调度分析</a><br>2021/09/02  <a href="http://mysql.taobao.org/monthly/2021/09/02/" target="_blank" rel="noopener">PolarDB · 引擎特性 ·  DDL物理复制优化</a><br>2021/09/03  <a href="http://mysql.taobao.org/monthly/2021/09/03/" target="_blank" rel="noopener">MySQL · 源码分析 · Performance Schema 初始化过程</a><br>2021/09/04  <a href="http://mysql.taobao.org/monthly/2021/09/04/" target="_blank" rel="noopener">MySQL · 源码详解 · mini transaction详解</a></p><h3 id="2021-08"><a href="#2021-08" class="headerlink" title="2021/08"></a>2021/08</h3><p>2021/08/01  <a href="http://mysql.taobao.org/monthly/2021/08/01/" target="_blank" rel="noopener">MySQL · 最佳实战 · SQL编码转换浅析</a><br>2021/08/02  <a href="http://mysql.taobao.org/monthly/2021/08/02/" target="_blank" rel="noopener">MySQL · 源码分析 · 详解 Data Dictionary</a><br>2021/08/03  <a href="http://mysql.taobao.org/monthly/2021/08/03/" target="_blank" rel="noopener">POLARIS · 引擎分析 · 基于单机数据库扩展的分布式查询处理引擎</a><br>2021/08/04  <a href="http://mysql.taobao.org/monthly/2021/08/04/" target="_blank" rel="noopener">MySQL · 源码分析 · 参数解析流程</a></p><h3 id="2021-07"><a href="#2021-07" class="headerlink" title="2021/07"></a>2021/07</h3><p>2021/07/01  <a href="http://mysql.taobao.org/monthly/2021/07/01/" target="_blank" rel="noopener">POLARDB · 引擎特性 · Logic Redo</a><br>2021/07/02  <a href="http://mysql.taobao.org/monthly/2021/07/02/" target="_blank" rel="noopener">MySQL · 源码分析 · btr_cur_search_to_nth_level 函数分析</a><br>2021/07/03  <a href="http://mysql.taobao.org/monthly/2021/07/03/" target="_blank" rel="noopener">PostgreSQL · 内核特性 · 死锁检测与解决</a><br>2021/07/04  <a href="http://mysql.taobao.org/monthly/2021/07/04/" target="_blank" rel="noopener">MySQL · 源码分析 · 条件优化与执行分析</a><br>2021/07/05  <a href="http://mysql.taobao.org/monthly/2021/07/05/" target="_blank" rel="noopener">MySQL · 源码分析 · DDL log与原子DDL的实现</a><br>2021/07/06  <a href="http://mysql.taobao.org/monthly/2021/07/06/" target="_blank" rel="noopener">MySQL · 功能介绍 · GIS功能介绍</a><br>2021/07/07  <a href="http://mysql.taobao.org/monthly/2021/07/07/" target="_blank" rel="noopener">MySQL · 源码分析 · 临时表与TempTable存储引擎Allocator</a></p><h3 id="2021-06"><a href="#2021-06" class="headerlink" title="2021/06"></a>2021/06</h3><p>2021/06/01  <a href="http://mysql.taobao.org/monthly/2021/06/01/" target="_blank" rel="noopener">MySQL · 性能优化 · Undo Log IO优化</a><br>2021/06/02  <a href="http://mysql.taobao.org/monthly/2021/06/02/" target="_blank" rel="noopener">MySQL · 源码分析 · Semi-join优化与执行逻辑</a><br>2021/06/03  <a href="http://mysql.taobao.org/monthly/2021/06/03/" target="_blank" rel="noopener">MySQL · 源码分析 · Range (Min-Max Tree)结构分析</a><br>2021/06/04  <a href="http://mysql.taobao.org/monthly/2021/06/04/" target="_blank" rel="noopener">MySQL · 源码分析 · Order By优化逻辑代码分析</a><br>2021/06/05  <a href="http://mysql.taobao.org/monthly/2021/06/05/" target="_blank" rel="noopener">MySQL · 内核特性 · Btree 顺序插入优化及问题</a><br>2021/06/06  <a href="http://mysql.taobao.org/monthly/2021/06/06/" target="_blank" rel="noopener">MySQL · 内核特性 · 分区表下的多种索引类型</a></p><h3 id="2021-05"><a href="#2021-05" class="headerlink" title="2021/05"></a>2021/05</h3><p>2021/05/01  <a href="http://mysql.taobao.org/monthly/2021/05/01/" target="_blank" rel="noopener">PolarDB · 新特性 · 路在脚下, 从BTree 到Polar Index</a><br>2021/05/02  <a href="http://mysql.taobao.org/monthly/2021/05/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · 死锁检测</a><br>2021/05/03  <a href="http://mysql.taobao.org/monthly/2021/05/03/" target="_blank" rel="noopener">MySQL · 内核特性 · 直方图</a></p><h3 id="2021-04"><a href="#2021-04" class="headerlink" title="2021/04"></a>2021/04</h3><p>2021/04/01  <a href="http://mysql.taobao.org/monthly/2021/04/01/" target="_blank" rel="noopener">MySQL · 内核特性 · Automatic connection failover</a><br>2021/04/02  <a href="http://mysql.taobao.org/monthly/2021/04/02/" target="_blank" rel="noopener">MongoDB · 内核特性 · 一致性模型设计与实现</a><br>2021/04/03  <a href="http://mysql.taobao.org/monthly/2021/04/03/" target="_blank" rel="noopener">MySQL · 资源管理 · PFS内存管理分析</a><br>2021/04/04  <a href="http://mysql.taobao.org/monthly/2021/04/04/" target="_blank" rel="noopener">MySQL · HTAP · 分析型执行引擎</a><br>2021/04/05  <a href="http://mysql.taobao.org/monthly/2021/04/05/" target="_blank" rel="noopener">MySQL · 内核分析 · InnoDB主键约束和唯一约束的实现分析</a><br>2021/04/06  <a href="http://mysql.taobao.org/monthly/2021/04/06/" target="_blank" rel="noopener">MySQL · 源码阅读 · Window function解析</a></p><h3 id="2021-03"><a href="#2021-03" class="headerlink" title="2021/03"></a>2021/03</h3><p>2021/03/01  <a href="http://mysql.taobao.org/monthly/2021/03/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB Faster truncate/drop table space</a><br>2021/03/02  <a href="http://mysql.taobao.org/monthly/2021/03/02/" target="_blank" rel="noopener">MySQL · 源码阅读 · Decimal 的实现方法</a><br>2021/03/03  <a href="http://mysql.taobao.org/monthly/2021/03/03/" target="_blank" rel="noopener">PolarDB · 最佳实践 · 并行查询优化器的应用实践</a><br>2021/03/04  <a href="http://mysql.taobao.org/monthly/2021/03/04/" target="_blank" rel="noopener">PolarDB · 引擎特性 · 物理复制热点页优化</a><br>2021/03/05  <a href="http://mysql.taobao.org/monthly/2021/03/05/" target="_blank" rel="noopener">DataBase · 引擎特性 · OLAP/HTAP列式存储引擎概述</a><br>2021/03/06  <a href="http://mysql.taobao.org/monthly/2021/03/06/" target="_blank" rel="noopener">MySQL · 源码阅读 · 白话Online DDL</a></p><h3 id="2021-02"><a href="#2021-02" class="headerlink" title="2021/02"></a>2021/02</h3><p>2021/02/01  <a href="http://mysql.taobao.org/monthly/2021/02/01/" target="_blank" rel="noopener">PolarDB ·  特性分析 · Explain Format Tree 详解</a><br>2021/02/02  <a href="http://mysql.taobao.org/monthly/2021/02/02/" target="_blank" rel="noopener">MySQL · 源码阅读 · InnoDB Export/Import Tablespace解析</a><br>2021/02/03  <a href="http://mysql.taobao.org/monthly/2021/02/03/" target="_blank" rel="noopener">MySQL · 源码解析 · MySQL 8.0.23 Hypergraph Join Optimizer代码详解</a><br>2021/02/04  <a href="http://mysql.taobao.org/monthly/2021/02/04/" target="_blank" rel="noopener">MySQL · 性能优化 · InnoDB 事务 sharded 锁系统优化</a><br>2021/02/05  <a href="http://mysql.taobao.org/monthly/2021/02/05/" target="_blank" rel="noopener">DataBase · 社区动态 · 数据库中的表达式</a><br>2021/02/06  <a href="http://mysql.taobao.org/monthly/2021/02/06/" target="_blank" rel="noopener">MySQL · 源码分析 · Group by优化逻辑代码分析</a><br>2021/02/07  <a href="http://mysql.taobao.org/monthly/2021/02/07/" target="_blank" rel="noopener">MySQL · 源码阅读 · X-plugin的传输协议</a><br>2021/02/08  <a href="http://mysql.taobao.org/monthly/2021/02/08/" target="_blank" rel="noopener">MySQL · 源码阅读 · MySQL8.0 innodb锁相关</a><br>2021/02/09  <a href="http://mysql.taobao.org/monthly/2021/02/09/" target="_blank" rel="noopener">PolarDB · 优化改进 · 使用窗口聚合函数来将子查询解关联</a></p><h3 id="2021-01"><a href="#2021-01" class="headerlink" title="2021/01"></a>2021/01</h3><p>2021/01/01  <a href="http://mysql.taobao.org/monthly/2021/01/01/" target="_blank" rel="noopener">PolarDB · 源码解析 · 深度解析PolarDB的并行查询引擎</a><br>2021/01/02  <a href="http://mysql.taobao.org/monthly/2021/01/02/" target="_blank" rel="noopener">MySQL · 源码阅读 · 内部XA事务</a><br>2021/01/03  <a href="http://mysql.taobao.org/monthly/2021/01/03/" target="_blank" rel="noopener">PolarDB · 优化改进 · DDL的优化和演进</a><br>2021/01/04  <a href="http://mysql.taobao.org/monthly/2021/01/04/" target="_blank" rel="noopener">Database · 最佳实践 · 内存索引指南</a><br>2021/01/05  <a href="http://mysql.taobao.org/monthly/2021/01/05/" target="_blank" rel="noopener">Database · 最佳实践 · 高性能 Hash Join 算法实现简述</a><br>2021/01/06  <a href="http://mysql.taobao.org/monthly/2021/01/06/" target="_blank" rel="noopener">MySQL · 源码阅读 · Innodb内存管理解析</a><br>2021/01/07  <a href="http://mysql.taobao.org/monthly/2021/01/07/" target="_blank" rel="noopener">X-Engine · 引擎特性 · 并行DDL</a><br>2021/01/08  <a href="http://mysql.taobao.org/monthly/2021/01/08/" target="_blank" rel="noopener">PostgreSQL · 新增特性 · PG 13 新特性</a></p><h3 id="2020-12"><a href="#2020-12" class="headerlink" title="2020/12"></a>2020/12</h3><p>2020/12/01  <a href="http://mysql.taobao.org/monthly/2020/12/01/" target="_blank" rel="noopener">Database · 发展前沿 · NewSQL数据库概述</a><br>2020/12/02  <a href="http://mysql.taobao.org/monthly/2020/12/02/" target="_blank" rel="noopener">AliSQL · 内核新特性 · 2020技术总结</a><br>2020/12/03  <a href="http://mysql.taobao.org/monthly/2020/12/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · page cleaner 算法</a><br>2020/12/04  <a href="http://mysql.taobao.org/monthly/2020/12/04/" target="_blank" rel="noopener">PolarDB · 引擎特性 · 历史库</a><br>2020/12/05  <a href="http://mysql.taobao.org/monthly/2020/12/05/" target="_blank" rel="noopener">MySQL · 内核特性 · 统计信息的现状和发展</a></p><h3 id="2020-11"><a href="#2020-11" class="headerlink" title="2020/11"></a>2020/11</h3><p>2020/11/01  <a href="http://mysql.taobao.org/monthly/2020/11/01/" target="_blank" rel="noopener">MySQL · 源码分析 · MySQL Statement Digest</a><br>2020/11/02  <a href="http://mysql.taobao.org/monthly/2020/11/02/" target="_blank" rel="noopener">Database · 理论基础 · B-tree 物理结构的并发控制</a><br>2020/11/03  <a href="http://mysql.taobao.org/monthly/2020/11/03/" target="_blank" rel="noopener">MySQL · 源码阅读 · 创建二级索引</a><br>2020/11/04  <a href="http://mysql.taobao.org/monthly/2020/11/04/" target="_blank" rel="noopener">MySQL · 源码阅读 · Secondary Engine</a></p><h3 id="2020-10"><a href="#2020-10" class="headerlink" title="2020/10"></a>2020/10</h3><p>2020/10/01  <a href="http://mysql.taobao.org/monthly/2020/10/01/" target="_blank" rel="noopener">MySQL · 源码分析 · 子查询优化源码分析</a><br>2020/10/02  <a href="http://mysql.taobao.org/monthly/2020/10/02/" target="_blank" rel="noopener">MySQL · 源码分析 · undo tablespace 的发展</a><br>2020/10/03  <a href="http://mysql.taobao.org/monthly/2020/10/03/" target="_blank" rel="noopener">MySQL · 最佳实践 · How to read the lock information from debugger</a></p><h3 id="2020-09"><a href="#2020-09" class="headerlink" title="2020/09"></a>2020/09</h3><p>2020/09/01  <a href="http://mysql.taobao.org/monthly/2020/09/01/" target="_blank" rel="noopener">MySQL · 性能优化 · PageCache优化管理</a><br>2020/09/02  <a href="http://mysql.taobao.org/monthly/2020/09/02/" target="_blank" rel="noopener">MySQL · 分布式系统 · 一致性协议under the hood</a><br>2020/09/03  <a href="http://mysql.taobao.org/monthly/2020/09/03/" target="_blank" rel="noopener">X-Engine · 性能优化 · Parallel WAL Recovery for X-Engine</a><br>2020/09/04  <a href="http://mysql.taobao.org/monthly/2020/09/04/" target="_blank" rel="noopener">MySQL · 源码阅读 · InnoDB伙伴内存分配系统实现分析</a><br>2020/09/05  <a href="http://mysql.taobao.org/monthly/2020/09/05/" target="_blank" rel="noopener">PgSQL · 新特性探索 · 浅谈postgresql分区表实现并发创建索引</a><br>2020/09/06  <a href="http://mysql.taobao.org/monthly/2020/09/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB隐式锁功能解析</a><br>2020/09/07  <a href="http://mysql.taobao.org/monthly/2020/09/07/" target="_blank" rel="noopener">MySQL · Optimizer · Optimizer Hints</a><br>2020/09/08  <a href="http://mysql.taobao.org/monthly/2020/09/08/" target="_blank" rel="noopener">Database  · 新特性 · 映射队列</a></p><h3 id="2020-08"><a href="#2020-08" class="headerlink" title="2020/08"></a>2020/08</h3><p>2020/08/01  <a href="http://mysql.taobao.org/monthly/2020/08/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · truncate table在大buffer pool下的优化</a><br>2020/08/02  <a href="http://mysql.taobao.org/monthly/2020/08/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · INNODB UNDO LOG分配</a><br>2020/08/03  <a href="http://mysql.taobao.org/monthly/2020/08/03/" target="_blank" rel="noopener">MySQL · 内核特性 · Redo Logging动态开关</a><br>2020/08/04  <a href="http://mysql.taobao.org/monthly/2020/08/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB Buffer Page 生命周期</a><br>2020/08/05  <a href="http://mysql.taobao.org/monthly/2020/08/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB UNDO LOG写入</a><br>2020/08/06  <a href="http://mysql.taobao.org/monthly/2020/08/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 数据文件简述</a><br>2020/08/07  <a href="http://mysql.taobao.org/monthly/2020/08/07/" target="_blank" rel="noopener">Database · 案例分析 · UTF8与GBK数据库字符集</a></p><h3 id="2020-07"><a href="#2020-07" class="headerlink" title="2020/07"></a>2020/07</h3><p>2020/07/01  <a href="http://mysql.taobao.org/monthly/2020/07/01/" target="_blank" rel="noopener">MySQL · 内核特性 · 8.0 新的火山模型执行器</a><br>2020/07/02  <a href="http://mysql.taobao.org/monthly/2020/07/02/" target="_blank" rel="noopener">MongoDB · 内核特性 · wiredtiger page逐出</a><br>2020/07/03  <a href="http://mysql.taobao.org/monthly/2020/07/03/" target="_blank" rel="noopener">AliSQL · 内核特性 · 快速 DDL</a><br>2020/07/04  <a href="http://mysql.taobao.org/monthly/2020/07/04/" target="_blank" rel="noopener">MySQL · 内核特性 · semi-join四个执行strategy</a><br>2020/07/05  <a href="http://mysql.taobao.org/monthly/2020/07/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB redo log thread cpu usage</a><br>2020/07/06  <a href="http://mysql.taobao.org/monthly/2020/07/06/" target="_blank" rel="noopener">PgSQL · 引擎特性 · SQL防火墙使用说明与内核浅析</a></p><h3 id="2020-06"><a href="#2020-06" class="headerlink" title="2020/06"></a>2020/06</h3><p>2020/06/01  <a href="http://mysql.taobao.org/monthly/2020/06/01/" target="_blank" rel="noopener">AliSQL · 内核特性 · Binlog In Redo</a><br>2020/06/02  <a href="http://mysql.taobao.org/monthly/2020/06/02/" target="_blank" rel="noopener">MySQL · 内核特性 · InnoDB btree latch 优化历程</a><br>2020/06/03  <a href="http://mysql.taobao.org/monthly/2020/06/03/" target="_blank" rel="noopener">MySQL · 内核特性 · Attachable transaction</a><br>2020/06/04  <a href="http://mysql.taobao.org/monthly/2020/06/04/" target="_blank" rel="noopener">MySQL · 内核特性 · Link buf</a><br>2020/06/05  <a href="http://mysql.taobao.org/monthly/2020/06/05/" target="_blank" rel="noopener">PgSQL · 新版本调研 · 13 Beta 1 初体验</a></p><h3 id="2020-05"><a href="#2020-05" class="headerlink" title="2020/05"></a>2020/05</h3><p>2020/05/01  <a href="http://mysql.taobao.org/monthly/2020/05/01/" target="_blank" rel="noopener">Database · 技术方向 · 下一代云原生数据库详解</a><br>2020/05/02  <a href="http://mysql.taobao.org/monthly/2020/05/02/" target="_blank" rel="noopener">Database · 理论基础 · 高性能B-tree索引</a><br>2020/05/03  <a href="http://mysql.taobao.org/monthly/2020/05/03/" target="_blank" rel="noopener">Database · 理论基础 · ARIES/IM (一)</a><br>2020/05/04  <a href="http://mysql.taobao.org/monthly/2020/05/04/" target="_blank" rel="noopener">AliSQL · 引擎特性 · Fast Query Cache 介绍</a><br>2020/05/05  <a href="http://mysql.taobao.org/monthly/2020/05/05/" target="_blank" rel="noopener">MySQL · 源码分析 · 8.0 · DDL的那些事</a><br>2020/05/06  <a href="http://mysql.taobao.org/monthly/2020/05/06/" target="_blank" rel="noopener">MySQL · 内核分析 · InnoDB Buffer Pool 并发控制</a><br>2020/05/07  <a href="http://mysql.taobao.org/monthly/2020/05/07/" target="_blank" rel="noopener">MySQL · 源码分析 · 内部 XA 和组提交</a><br>2020/05/08  <a href="http://mysql.taobao.org/monthly/2020/05/08/" target="_blank" rel="noopener">MySQL · 插件分析 · Connection Control</a><br>2020/05/09  <a href="http://mysql.taobao.org/monthly/2020/05/09/" target="_blank" rel="noopener">MySQL · 引擎特性 · 基于GTID复制实现的工作原理</a></p><h3 id="2020-04"><a href="#2020-04" class="headerlink" title="2020/04"></a>2020/04</h3><p>2020/04/01  <a href="http://mysql.taobao.org/monthly/2020/04/01/" target="_blank" rel="noopener">PostgreSQL · 源码分析 · 回放分析（一）</a><br>2020/04/02  <a href="http://mysql.taobao.org/monthly/2020/04/02/" target="_blank" rel="noopener">MySQL · 源码分析 · InnoDB读写锁实现分析</a><br>2020/04/03  <a href="http://mysql.taobao.org/monthly/2020/04/03/" target="_blank" rel="noopener">MySQL · 最佳实践 · X-Engine并行扫描</a><br>2020/04/04  <a href="http://mysql.taobao.org/monthly/2020/04/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · 8.0 Window Functions 剖析</a><br>2020/04/05  <a href="http://mysql.taobao.org/monthly/2020/04/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · Performance_schema 内存分配</a><br>2020/04/06  <a href="http://mysql.taobao.org/monthly/2020/04/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · 手动分析InnoDB B+Tree结构</a><br>2020/04/07  <a href="http://mysql.taobao.org/monthly/2020/04/07/" target="_blank" rel="noopener">Redis · 最佳实践 · 集群配置：Redis Cluster</a><br>2020/04/08  <a href="http://mysql.taobao.org/monthly/2020/04/08/" target="_blank" rel="noopener">MongoDB · 引擎特性 · 大量集合启动加载优化原理</a><br>2020/04/09  <a href="http://mysql.taobao.org/monthly/2020/04/09/" target="_blank" rel="noopener">MySQL · 引擎特性 · 8.0 Lock Manager</a></p><h3 id="2020-03"><a href="#2020-03" class="headerlink" title="2020/03"></a>2020/03</h3><p>2020/03/01  <a href="http://mysql.taobao.org/monthly/2020/03/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 8.0 Instant Add Column功能解析</a><br>2020/03/02  <a href="http://mysql.taobao.org/monthly/2020/03/02/" target="_blank" rel="noopener">PgSQL · 引擎特性 · PostgreSQL 通信协议</a><br>2020/03/03  <a href="http://mysql.taobao.org/monthly/2020/03/03/" target="_blank" rel="noopener">MySQL · 产品特性 · RDS三节点企业版的高可用体系</a><br>2020/03/04  <a href="http://mysql.taobao.org/monthly/2020/03/04/" target="_blank" rel="noopener">AliSQL · 最佳实践 · Performance Agent</a><br>2020/03/05  <a href="http://mysql.taobao.org/monthly/2020/03/05/" target="_blank" rel="noopener">MySQL · 内核分析 · InnoDB mutex 实现分析</a><br>2020/03/06  <a href="http://mysql.taobao.org/monthly/2020/03/06/" target="_blank" rel="noopener">Database · 理论基础 · B link Tree</a><br>2020/03/07  <a href="http://mysql.taobao.org/monthly/2020/03/07/" target="_blank" rel="noopener">MySQL · 引擎特性 · Latch 持有分析</a><br>2020/03/08  <a href="http://mysql.taobao.org/monthly/2020/03/08/" target="_blank" rel="noopener">MySQL · 内核分析 · InnoDB 的统计信息</a><br>2020/03/09  <a href="http://mysql.taobao.org/monthly/2020/03/09/" target="_blank" rel="noopener">MySQL · 引擎特性 · 排序实现</a><br>2020/03/10  <a href="http://mysql.taobao.org/monthly/2020/03/10/" target="_blank" rel="noopener">PgSQL · 插件分析 · plProfiler</a></p><h3 id="2020-02"><a href="#2020-02" class="headerlink" title="2020/02"></a>2020/02</h3><p>2020/02/01  <a href="http://mysql.taobao.org/monthly/2020/02/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 庖丁解InnoDB之REDO LOG</a><br>2020/02/02  <a href="http://mysql.taobao.org/monthly/2020/02/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB Buffer Pool 浅析</a><br>2020/02/03  <a href="http://mysql.taobao.org/monthly/2020/02/03/" target="_blank" rel="noopener">MySQL · 最佳实践 · RDS 三节点企业版热点组提交</a><br>2020/02/04  <a href="http://mysql.taobao.org/monthly/2020/02/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · 8.0 heap table 介绍</a><br>2020/02/05  <a href="http://mysql.taobao.org/monthly/2020/02/05/" target="_blank" rel="noopener">MySQL · 存储引擎 · MySQL的字段数据存储格式</a><br>2020/02/06  <a href="http://mysql.taobao.org/monthly/2020/02/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · MYSQL Binlog Cache详解</a></p><h3 id="2020-01"><a href="#2020-01" class="headerlink" title="2020/01"></a>2020/01</h3><p>2020/01/01  <a href="http://mysql.taobao.org/monthly/2020/01/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 二级索引分析</a><br>2020/01/02  <a href="http://mysql.taobao.org/monthly/2020/01/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · X-Engine OnlineDDL</a><br>2020/01/03  <a href="http://mysql.taobao.org/monthly/2020/01/03/" target="_blank" rel="noopener">MySQL · 捉虫动态  ·  弱序内存模型导致的死锁问题</a><br>2020/01/04  <a href="http://mysql.taobao.org/monthly/2020/01/04/" target="_blank" rel="noopener">MySQL · 最佳实践 · 8.0 redo log写入性能问题分析</a><br>2020/01/05  <a href="http://mysql.taobao.org/monthly/2020/01/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB redo log 之 write ahead</a><br>2020/01/06  <a href="http://mysql.taobao.org/monthly/2020/01/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · Innodb WAL物理格式</a></p><h3 id="2019-12"><a href="#2019-12" class="headerlink" title="2019/12"></a>2019/12</h3><p>2019/12/01  <a href="http://mysql.taobao.org/monthly/2019/12/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 动态元信息持久化</a><br>2019/12/02  <a href="http://mysql.taobao.org/monthly/2019/12/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · Binlog encryption 浅析</a><br>2019/12/03  <a href="http://mysql.taobao.org/monthly/2019/12/03/" target="_blank" rel="noopener">MySQL · 代码阅读 · MYSQL开源软件源码阅读小技巧</a><br>2019/12/04  <a href="http://mysql.taobao.org/monthly/2019/12/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · 多线程调试工具DEBUG_SYNC的源码实现和使用</a><br>2019/12/05  <a href="http://mysql.taobao.org/monthly/2019/12/05/" target="_blank" rel="noopener">MySQL · 引擎特性 ·  InnoDB Parallel read of index</a></p><h3 id="2019-11"><a href="#2019-11" class="headerlink" title="2019/11"></a>2019/11</h3><p>2019/11/01  <a href="http://mysql.taobao.org/monthly/2019/11/01/" target="_blank" rel="noopener">MySQL · 最佳实践 · 今天你并行了吗？—洞察PolarDB 8.0之并行查询</a><br>2019/11/02  <a href="http://mysql.taobao.org/monthly/2019/11/02/" target="_blank" rel="noopener">MySQL · 新特征 · MySQL 哈希连接实现介绍</a><br>2019/11/03  <a href="http://mysql.taobao.org/monthly/2019/11/03/" target="_blank" rel="noopener">MySQL · 最佳实践 · 性能分析的大杀器—Optimizer trace</a><br>2019/11/04  <a href="http://mysql.taobao.org/monthly/2019/11/04/" target="_blank" rel="noopener">PgSQL · 未来特性调研 · TDE</a><br>2019/11/05  <a href="http://mysql.taobao.org/monthly/2019/11/05/" target="_blank" rel="noopener">Database · 理论基础 ·  Multi-ART</a><br>2019/11/06  <a href="http://mysql.taobao.org/monthly/2019/11/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · RDS三节点企业版 一致性协议</a><br>2019/11/07  <a href="http://mysql.taobao.org/monthly/2019/11/07/" target="_blank" rel="noopener">MySQL · 引擎特性 · RDS三节点企业版 Learner 只读实例</a></p><h3 id="2019-10"><a href="#2019-10" class="headerlink" title="2019/10"></a>2019/10</h3><p>2019/10/01  <a href="http://mysql.taobao.org/monthly/2019/10/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · Innodb 表空间</a><br>2019/10/02  <a href="http://mysql.taobao.org/monthly/2019/10/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · POLARDB 并行查询加速全程详解</a><br>2019/10/03  <a href="http://mysql.taobao.org/monthly/2019/10/03/" target="_blank" rel="noopener">MySQL · Optimizer · Parallel Index Scans, One is Better Than Two</a><br>2019/10/04  <a href="http://mysql.taobao.org/monthly/2019/10/04/" target="_blank" rel="noopener">MySQL · 最佳实践 · X-Engine MySQL RDS 用户的新选择</a><br>2019/10/05  <a href="http://mysql.taobao.org/monthly/2019/10/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · Sequence Engine</a><br>2019/10/06  <a href="http://mysql.taobao.org/monthly/2019/10/06/" target="_blank" rel="noopener">PgSQL · 应用案例 · 分组提交的使用与注意</a><br>2019/10/07  <a href="http://mysql.taobao.org/monthly/2019/10/07/" target="_blank" rel="noopener">MongoDB · 最佳实践 · Spark Connector 实战指南</a><br>2019/10/08  <a href="http://mysql.taobao.org/monthly/2019/10/08/" target="_blank" rel="noopener">PgSQL · 应用案例 · PG 12 tpcc - use sysbench-tpcc by Percona-Lab</a><br>2019/10/09  <a href="http://mysql.taobao.org/monthly/2019/10/09/" target="_blank" rel="noopener">PgSQL · 应用案例 ·  阿里云RDS PG 11开放dblink, postgres_fdw权限</a><br>2019/10/10  <a href="http://mysql.taobao.org/monthly/2019/10/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · Oracle 20c 新特性 - 翻出了PG十年前的特性</a></p><h3 id="2019-09"><a href="#2019-09" class="headerlink" title="2019/09"></a>2019/09</h3><p>2019/09/01  <a href="http://mysql.taobao.org/monthly/2019/09/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 临时表改进</a><br>2019/09/02  <a href="http://mysql.taobao.org/monthly/2019/09/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · 初探 Clone Plugin</a><br>2019/09/03  <a href="http://mysql.taobao.org/monthly/2019/09/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · 网络模块优化</a><br>2019/09/04  <a href="http://mysql.taobao.org/monthly/2019/09/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · Multi-Valued Indexes 简述</a><br>2019/09/05  <a href="http://mysql.taobao.org/monthly/2019/09/05/" target="_blank" rel="noopener">AliSQL · 引擎特性 · Statement Queue</a><br>2019/09/06  <a href="http://mysql.taobao.org/monthly/2019/09/06/" target="_blank" rel="noopener">Database · 理论基础 · Palm Tree</a><br>2019/09/07  <a href="http://mysql.taobao.org/monthly/2019/09/07/" target="_blank" rel="noopener">AliSQL · 引擎特性 · Returning</a><br>2019/09/08  <a href="http://mysql.taobao.org/monthly/2019/09/08/" target="_blank" rel="noopener">PgSQL · 最佳实践 · 回归测试探寻</a><br>2019/09/09  <a href="http://mysql.taobao.org/monthly/2019/09/09/" target="_blank" rel="noopener">MongoDB · 最佳实践 · 哈希分片为什么分布不均匀</a><br>2019/09/10  <a href="http://mysql.taobao.org/monthly/2019/09/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PG有standby的情况下为什么停库可能变慢？</a></p><h3 id="2019-08"><a href="#2019-08" class="headerlink" title="2019/08"></a>2019/08</h3><p>2019/08/01  <a href="http://mysql.taobao.org/monthly/2019/08/01/" target="_blank" rel="noopener">PgSQL· 引擎特性 · 多版本并发控制介绍及实例分析</a><br>2019/08/02  <a href="http://mysql.taobao.org/monthly/2019/08/02/" target="_blank" rel="noopener">AliSQL · 引擎特性 · Recycle Bin</a><br>2019/08/03  <a href="http://mysql.taobao.org/monthly/2019/08/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · 8.0 Innodb redo log record 源码分析</a><br>2019/08/04  <a href="http://mysql.taobao.org/monthly/2019/08/04/" target="_blank" rel="noopener">Database · 内存管理 · JeMalloc-5.1.0 实现分析</a><br>2019/08/05  <a href="http://mysql.taobao.org/monthly/2019/08/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · clone_plugin</a><br>2019/08/06  <a href="http://mysql.taobao.org/monthly/2019/08/06/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 启用即时文件初始化</a><br>2019/08/07  <a href="http://mysql.taobao.org/monthly/2019/08/07/" target="_blank" rel="noopener">PgSQL · 特性分析 · 浅析PostgreSQL 的JIT</a><br>2019/08/08  <a href="http://mysql.taobao.org/monthly/2019/08/08/" target="_blank" rel="noopener">MySQL · 引擎特性 ·  ROLLUP 功能用法和实现</a><br>2019/08/09  <a href="http://mysql.taobao.org/monthly/2019/08/09/" target="_blank" rel="noopener">Redis · 最佳实践 · 混合存储实践指南</a><br>2019/08/10  <a href="http://mysql.taobao.org/monthly/2019/08/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · pgbench client_id 变量用途</a></p><h3 id="2019-07"><a href="#2019-07" class="headerlink" title="2019/07"></a>2019/07</h3><p>2019/07/01  <a href="http://mysql.taobao.org/monthly/2019/07/01/" target="_blank" rel="noopener">MySQL · 最佳实践 · Statement Outline</a><br>2019/07/02  <a href="http://mysql.taobao.org/monthly/2019/07/02/" target="_blank" rel="noopener">PgSQL · 新特性解读 · undo log 存储接口（上）</a><br>2019/07/03  <a href="http://mysql.taobao.org/monthly/2019/07/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · Buffer Pool 漫谈</a><br>2019/07/04  <a href="http://mysql.taobao.org/monthly/2019/07/04/" target="_blank" rel="noopener">MongoDB · 引擎特性 · oplog 查询优化</a><br>2019/07/05  <a href="http://mysql.taobao.org/monthly/2019/07/05/" target="_blank" rel="noopener">PgSQL · 最佳实践 · pg_cron 内核分析及用法简介</a><br>2019/07/06  <a href="http://mysql.taobao.org/monthly/2019/07/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · CTE(Common Table Expressions)</a><br>2019/07/07  <a href="http://mysql.taobao.org/monthly/2019/07/07/" target="_blank" rel="noopener">Database · 理论基础 · Mass Tree</a><br>2019/07/08  <a href="http://mysql.taobao.org/monthly/2019/07/08/" target="_blank" rel="noopener">MySQL · 源码分析 · <code>slow log</code> 与<code>CSV</code>引擎</a><br>2019/07/09  <a href="http://mysql.taobao.org/monthly/2019/07/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · 使用SQL查询数据库日志</a><br>2019/07/10  <a href="http://mysql.taobao.org/monthly/2019/07/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL psql的元素周期表</a></p><h3 id="2019-06"><a href="#2019-06" class="headerlink" title="2019/06"></a>2019/06</h3><p>2019/06/01  <a href="http://mysql.taobao.org/monthly/2019/06/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 安全及权限改进相关</a><br>2019/06/02  <a href="http://mysql.taobao.org/monthly/2019/06/02/" target="_blank" rel="noopener">MySQL · 最佳实践 · RDS MySQL 8.0 语句级并发控制</a><br>2019/06/03  <a href="http://mysql.taobao.org/monthly/2019/06/03/" target="_blank" rel="noopener">CloudDBA · 最佳实践 · Performance Insights</a><br>2019/06/04  <a href="http://mysql.taobao.org/monthly/2019/06/04/" target="_blank" rel="noopener">PgSQL · 应用案例 · 学生为什么应该学PG</a><br>2019/06/05  <a href="http://mysql.taobao.org/monthly/2019/06/05/" target="_blank" rel="noopener">MongoDB · 引擎特性 · 4.2 新特性解读</a><br>2019/06/06  <a href="http://mysql.taobao.org/monthly/2019/06/06/" target="_blank" rel="noopener">PgSQL · 答疑解惑 · 垃圾回收、膨胀、多版本管理、存储引擎</a><br>2019/06/07  <a href="http://mysql.taobao.org/monthly/2019/06/07/" target="_blank" rel="noopener">MySQL · 引擎特性 · 说说InnoDB Log System的隐藏参数</a><br>2019/06/08  <a href="http://mysql.taobao.org/monthly/2019/06/08/" target="_blank" rel="noopener">MySQL · 引擎特性 · CHECK CONSTRAINT</a><br>2019/06/09  <a href="http://mysql.taobao.org/monthly/2019/06/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · 如何修改PostgreSQL分区表分区范围</a><br>2019/06/10  <a href="http://mysql.taobao.org/monthly/2019/06/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 什么情况下可能表膨胀</a></p><h3 id="2019-05"><a href="#2019-05" class="headerlink" title="2019/05"></a>2019/05</h3><p>2019/05/01  <a href="http://mysql.taobao.org/monthly/2019/05/01/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 挑战云计算安全的存储过程</a><br>2019/05/02  <a href="http://mysql.taobao.org/monthly/2019/05/02/" target="_blank" rel="noopener">MySQL · 源码分析 · 聚合函数（Aggregate Function）的实现过程</a><br>2019/05/03  <a href="http://mysql.taobao.org/monthly/2019/05/03/" target="_blank" rel="noopener">PgSQL · 最佳实践 · RDS for PostgreSQL 的逻辑订阅</a><br>2019/05/04  <a href="http://mysql.taobao.org/monthly/2019/05/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · 通过 SQL 管理 UNDO TABLESPACE</a><br>2019/05/05  <a href="http://mysql.taobao.org/monthly/2019/05/05/" target="_blank" rel="noopener">MySQL · 最佳实践 · 通过Resource Group来控制线程计算资源</a><br>2019/05/06  <a href="http://mysql.taobao.org/monthly/2019/05/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · Skip Scan Range</a><br>2019/05/07  <a href="http://mysql.taobao.org/monthly/2019/05/07/" target="_blank" rel="noopener">MongoDB · 应用案例 · killOp 案例详解</a><br>2019/05/08  <a href="http://mysql.taobao.org/monthly/2019/05/08/" target="_blank" rel="noopener">MySQL · 源码分析 · LinkBuf设计与实现</a><br>2019/05/09  <a href="http://mysql.taobao.org/monthly/2019/05/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL KPI分解，目标设定之 - 等比数列</a><br>2019/05/10  <a href="http://mysql.taobao.org/monthly/2019/05/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL KPI 预测例子</a></p><h3 id="2019-04"><a href="#2019-04" class="headerlink" title="2019/04"></a>2019/04</h3><p>2019/04/01  <a href="http://mysql.taobao.org/monthly/2019/04/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 临时表那些事儿</a><br>2019/04/02  <a href="http://mysql.taobao.org/monthly/2019/04/02/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 使用SSL加密连接</a><br>2019/04/03  <a href="http://mysql.taobao.org/monthly/2019/04/03/" target="_blank" rel="noopener">Redis · 引擎特性 · radix tree 源码解析</a><br>2019/04/04  <a href="http://mysql.taobao.org/monthly/2019/04/04/" target="_blank" rel="noopener">MySQL · 引擎分析 · InnoDB history list 无法降到0的原因</a><br>2019/04/05  <a href="http://mysql.taobao.org/monthly/2019/04/05/" target="_blank" rel="noopener">MySQL · 关于undo表空间的一些新变化</a><br>2019/04/06  <a href="http://mysql.taobao.org/monthly/2019/04/06/" target="_blank" rel="noopener">MySQL · 引擎特性 · 新的事务锁调度VATS简介</a><br>2019/04/07  <a href="http://mysql.taobao.org/monthly/2019/04/07/" target="_blank" rel="noopener">MySQL · 引擎特性 · 增加系统文件追踪space ID和物理文件的映射</a><br>2019/04/08  <a href="http://mysql.taobao.org/monthly/2019/04/08/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL 9种索引的原理和应用场景</a><br>2019/04/09  <a href="http://mysql.taobao.org/monthly/2019/04/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · 任意字段组合查询</a><br>2019/04/10  <a href="http://mysql.taobao.org/monthly/2019/04/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL 并行计算</a></p><h3 id="2019-03"><a href="#2019-03" class="headerlink" title="2019/03"></a>2019/03</h3><p>2019/03/01  <a href="http://mysql.taobao.org/monthly/2019/03/01/" target="_blank" rel="noopener">PgSQL · 特性分析 · 内存管理机制</a><br>2019/03/02  <a href="http://mysql.taobao.org/monthly/2019/03/02/" target="_blank" rel="noopener">MongoDB · 同步工具 · MongoShake原理分析</a><br>2019/03/03  <a href="http://mysql.taobao.org/monthly/2019/03/03/" target="_blank" rel="noopener">MySQL · InnoDB · Redo log</a><br>2019/03/04  <a href="http://mysql.taobao.org/monthly/2019/03/04/" target="_blank" rel="noopener">MSSQL · 最佳实践 · Always Encrypted</a><br>2019/03/05  <a href="http://mysql.taobao.org/monthly/2019/03/05/" target="_blank" rel="noopener">MySQL · 源码分析 · CHECK TABLE实现</a><br>2019/03/06  <a href="http://mysql.taobao.org/monthly/2019/03/06/" target="_blank" rel="noopener">PgSQL · 原理介绍 · PostgreSQL中的空闲空间管理</a><br>2019/03/07  <a href="http://mysql.taobao.org/monthly/2019/03/07/" target="_blank" rel="noopener">MySQL · 引擎特性 · 8.0 Descending Index</a><br>2019/03/08  <a href="http://mysql.taobao.org/monthly/2019/03/08/" target="_blank" rel="noopener">理论基础 · Raft phd 论文中的pipeline 优化</a><br>2019/03/09  <a href="http://mysql.taobao.org/monthly/2019/03/09/" target="_blank" rel="noopener">MySQL · 引擎特性 · MySQL 状态信息Status实现</a><br>2019/03/10  <a href="http://mysql.taobao.org/monthly/2019/03/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 使用PostgreSQL生成数独方法1</a></p><h3 id="2019-02"><a href="#2019-02" class="headerlink" title="2019/02"></a>2019/02</h3><p>2019/02/01  <a href="http://mysql.taobao.org/monthly/2019/02/01/" target="_blank" rel="noopener">POLARDB · 性能优化 · 敢问路在何方 — 论B+树索引的演进方向（中）</a><br>2019/02/02  <a href="http://mysql.taobao.org/monthly/2019/02/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · Inspecting the Content of a MySQL Histogram</a><br>2019/02/03  <a href="http://mysql.taobao.org/monthly/2019/02/03/" target="_blank" rel="noopener">Database · 原理介绍 · Snapshot Isolation 综述</a><br>2019/02/04  <a href="http://mysql.taobao.org/monthly/2019/02/04/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 数据库备份加密</a><br>2019/02/05  <a href="http://mysql.taobao.org/monthly/2019/02/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · The design of mysql8.0 redolog</a><br>2019/02/06  <a href="http://mysql.taobao.org/monthly/2019/02/06/" target="_blank" rel="noopener">MySQL · 源码分析 · 8.0 Functional index的实现过程</a><br>2019/02/07  <a href="http://mysql.taobao.org/monthly/2019/02/07/" target="_blank" rel="noopener">PgSQL · 源码解析 · Json — 从使用到源码</a><br>2019/02/08  <a href="http://mysql.taobao.org/monthly/2019/02/08/" target="_blank" rel="noopener">MySQL · 最佳实践 · 如何使用C++实现 MySQL 用户定义函数</a><br>2019/02/09  <a href="http://mysql.taobao.org/monthly/2019/02/09/" target="_blank" rel="noopener">MySQL · 最佳实践 · MySQL多队列线程池优化</a><br>2019/02/10  <a href="http://mysql.taobao.org/monthly/2019/02/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL 时间线修复</a></p><h3 id="2019-01"><a href="#2019-01" class="headerlink" title="2019/01"></a>2019/01</h3><p>2019/01/01  <a href="http://mysql.taobao.org/monthly/2019/01/01/" target="_blank" rel="noopener">POLARDB · 理论基础 · 数据库故障恢复机制的前世今生</a><br>2019/01/02  <a href="http://mysql.taobao.org/monthly/2019/01/02/" target="_blank" rel="noopener">POLARDB · 最佳实践 · POLARDB不得不知道的秘密(二)</a><br>2019/01/03  <a href="http://mysql.taobao.org/monthly/2019/01/03/" target="_blank" rel="noopener">MongoDB · 原理介绍 · MongoDB从事务到复制</a><br>2019/01/04  <a href="http://mysql.taobao.org/monthly/2019/01/04/" target="_blank" rel="noopener">PgSQL · 引擎特性 · PostgreSQL 并行查询概述</a><br>2019/01/05  <a href="http://mysql.taobao.org/monthly/2019/01/05/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 如何打码隐私数据列</a><br>2019/01/06  <a href="http://mysql.taobao.org/monthly/2019/01/06/" target="_blank" rel="noopener">Redis · 引擎特性 · Lua脚本新姿势</a><br>2019/01/07  <a href="http://mysql.taobao.org/monthly/2019/01/07/" target="_blank" rel="noopener">Mariadb · 源码分析 · proxy protocol</a><br>2019/01/08  <a href="http://mysql.taobao.org/monthly/2019/01/08/" target="_blank" rel="noopener">MySQL · InnoDB · tablespace源码分析</a><br>2019/01/09  <a href="http://mysql.taobao.org/monthly/2019/01/09/" target="_blank" rel="noopener">MySQL · 最佳实践 · MySQL中的IO共享操作</a><br>2019/01/10  <a href="http://mysql.taobao.org/monthly/2019/01/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · native partition 分区表性能优化</a></p><h3 id="2018-12"><a href="#2018-12" class="headerlink" title="2018/12"></a>2018/12</h3><p>2018/12/01  <a href="http://mysql.taobao.org/monthly/2018/12/01/" target="_blank" rel="noopener">Database · 原理介绍 · 数据库的事务与复制</a><br>2018/12/02  <a href="http://mysql.taobao.org/monthly/2018/12/02/" target="_blank" rel="noopener">PgSQL · 引擎特性 · PostgreSQL Hint Bits 简介</a><br>2018/12/03  <a href="http://mysql.taobao.org/monthly/2018/12/03/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 行级别安全解决方案</a><br>2018/12/04  <a href="http://mysql.taobao.org/monthly/2018/12/04/" target="_blank" rel="noopener">MySQL · 原理介绍 · 再议MySQL的故障恢复</a><br>2018/12/05  <a href="http://mysql.taobao.org/monthly/2018/12/05/" target="_blank" rel="noopener">POLARDB · 引擎特性 · 物理复制解读</a><br>2018/12/06  <a href="http://mysql.taobao.org/monthly/2018/12/06/" target="_blank" rel="noopener">Redis · 原理介绍 · 利用管道优化aofrewrite</a><br>2018/12/07  <a href="http://mysql.taobao.org/monthly/2018/12/07/" target="_blank" rel="noopener">PgSQL · 原理介绍 · PostgreSQL行锁实现</a><br>2018/12/08  <a href="http://mysql.taobao.org/monthly/2018/12/08/" target="_blank" rel="noopener">MySQL · RocksDB · 数据的读取(二)</a><br>2018/12/09  <a href="http://mysql.taobao.org/monthly/2018/12/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · PG 11 并行计算算法，参数，强制并行度设置</a><br>2018/12/10  <a href="http://mysql.taobao.org/monthly/2018/12/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL IoT，车联网 - 实时轨迹、行程实践</a></p><h3 id="2018-11"><a href="#2018-11" class="headerlink" title="2018/11"></a>2018/11</h3><p>2018/11/01  <a href="http://mysql.taobao.org/monthly/2018/11/01/" target="_blank" rel="noopener">POLARDB · 理论基础 · 敢问路在何方 — 论B+树索引的演进方向（上）</a><br>2018/11/02  <a href="http://mysql.taobao.org/monthly/2018/11/02/" target="_blank" rel="noopener">Database · 原理介绍 · Google Percolator 分布式事务实现原理解读</a><br>2018/11/03  <a href="http://mysql.taobao.org/monthly/2018/11/03/" target="_blank" rel="noopener">Database · 原理介绍 · 关于Paxos 幽灵复现问题</a><br>2018/11/04  <a href="http://mysql.taobao.org/monthly/2018/11/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB MVCC 相关实现</a><br>2018/11/05  <a href="http://mysql.taobao.org/monthly/2018/11/05/" target="_blank" rel="noopener">MySQL · RocksDB · 数据的读取(一)</a><br>2018/11/06  <a href="http://mysql.taobao.org/monthly/2018/11/06/" target="_blank" rel="noopener">PgSQL · 最佳实践 · EXPLAIN 使用浅析</a><br>2018/11/07  <a href="http://mysql.taobao.org/monthly/2018/11/07/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 列加密查询性能问题及解决方案</a><br>2018/11/08  <a href="http://mysql.taobao.org/monthly/2018/11/08/" target="_blank" rel="noopener">MySQL · 最佳实践 · 性能问题多维度诊断</a><br>2018/11/09  <a href="http://mysql.taobao.org/monthly/2018/11/09/" target="_blank" rel="noopener">MySQL · 最佳实践 · 8.0 CTE和窗口函数的用法</a><br>2018/11/10  <a href="http://mysql.taobao.org/monthly/2018/11/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · Heap Only Tuple (降低UPDATE引入的索引写IO放大)</a></p><h3 id="2018-10"><a href="#2018-10" class="headerlink" title="2018/10"></a>2018/10</h3><p>2018/10/01  <a href="http://mysql.taobao.org/monthly/2018/10/01/" target="_blank" rel="noopener">POLARDB · 最佳实践 · POLARDB不得不知道的秘密</a><br>2018/10/02  <a href="http://mysql.taobao.org/monthly/2018/10/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · Cost Model,直方图及优化器开销优化</a><br>2018/10/03  <a href="http://mysql.taobao.org/monthly/2018/10/03/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 使用混合密钥实现列加密</a><br>2018/10/04  <a href="http://mysql.taobao.org/monthly/2018/10/04/" target="_blank" rel="noopener">MongoDB · 引擎特性 · 复制集原理</a><br>2018/10/05  <a href="http://mysql.taobao.org/monthly/2018/10/05/" target="_blank" rel="noopener">Redis · lazyfree · 大key删除的福音</a><br>2018/10/06  <a href="http://mysql.taobao.org/monthly/2018/10/06/" target="_blank" rel="noopener">Database · 理论基础 · 数据库事务隔离发展历史</a><br>2018/10/07  <a href="http://mysql.taobao.org/monthly/2018/10/07/" target="_blank" rel="noopener">Database · 理论基础 · 关于一致性协议和分布式锁</a><br>2018/10/08  <a href="http://mysql.taobao.org/monthly/2018/10/08/" target="_blank" rel="noopener">MySQL · RocksDB · Level Compact 分析</a><br>2018/10/09  <a href="http://mysql.taobao.org/monthly/2018/10/09/" target="_blank" rel="noopener">MySQL · RocksDB · TransactionDB 介绍</a><br>2018/10/10  <a href="http://mysql.taobao.org/monthly/2018/10/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 相似人群圈选，人群扩选，向量相似 使用实践</a></p><h3 id="2018-09"><a href="#2018-09" class="headerlink" title="2018/09"></a>2018/09</h3><p>2018/09/01  <a href="http://mysql.taobao.org/monthly/2018/09/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · B+树并发控制机制的前世今生</a><br>2018/09/02  <a href="http://mysql.taobao.org/monthly/2018/09/02/" target="_blank" rel="noopener">MySQL · 源码分析 · Innodb缓冲池刷脏的多线程实现</a><br>2018/09/03  <a href="http://mysql.taobao.org/monthly/2018/09/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · IO_CACHE 源码解析</a><br>2018/09/04  <a href="http://mysql.taobao.org/monthly/2018/09/04/" target="_blank" rel="noopener">MySQL · RocksDB · Memtable flush分析</a><br>2018/09/05  <a href="http://mysql.taobao.org/monthly/2018/09/05/" target="_blank" rel="noopener">MSSQL · 最佳实践 ·  使用非对称秘钥实现列加密</a><br>2018/09/06  <a href="http://mysql.taobao.org/monthly/2018/09/06/" target="_blank" rel="noopener">MongoDB · 引擎特性 · MongoDB索引原理</a><br>2018/09/07  <a href="http://mysql.taobao.org/monthly/2018/09/07/" target="_blank" rel="noopener">MySQL · 案例分析 · RDS MySQL线上实例insert慢常见原因分析</a><br>2018/09/08  <a href="http://mysql.taobao.org/monthly/2018/09/08/" target="_blank" rel="noopener">Redis · 引擎特性 · 基于 LFU 的热点 key 发现机制</a><br>2018/09/09  <a href="http://mysql.taobao.org/monthly/2018/09/09/" target="_blank" rel="noopener">MySQL · myrocks ·  collation 限制</a><br>2018/09/10  <a href="http://mysql.taobao.org/monthly/2018/09/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL 图像搜索实践</a></p><h3 id="2018-08"><a href="#2018-08" class="headerlink" title="2018/08"></a>2018/08</h3><p>2018/08/01  <a href="http://mysql.taobao.org/monthly/2018/08/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 主库 binlog 概览</a><br>2018/08/02  <a href="http://mysql.taobao.org/monthly/2018/08/02/" target="_blank" rel="noopener">MySQL · RocksDB · Write Prepared Policy</a><br>2018/08/03  <a href="http://mysql.taobao.org/monthly/2018/08/03/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 使用对称秘钥实现列加密</a><br>2018/08/04  <a href="http://mysql.taobao.org/monthly/2018/08/04/" target="_blank" rel="noopener">MySQL · 特性分析 · InnoDB对binlog_format的限制</a><br>2018/08/05  <a href="http://mysql.taobao.org/monthly/2018/08/05/" target="_blank" rel="noopener">MongoDB · 引擎特性 · sharding chunk 分裂与迁移详解</a><br>2018/08/06  <a href="http://mysql.taobao.org/monthly/2018/08/06/" target="_blank" rel="noopener"></a><br>2018/08/07  <a href="http://mysql.taobao.org/monthly/2018/08/07/" target="_blank" rel="noopener">MySQL · 源码分析 · 连接与认证过程</a><br>2018/08/08  <a href="http://mysql.taobao.org/monthly/2018/08/08/" target="_blank" rel="noopener">MySQL · RocksDB ·  MemTable的写入逻辑</a><br>2018/08/09  <a href="http://mysql.taobao.org/monthly/2018/08/09/" target="_blank" rel="noopener">PgSQL · 最佳实践 · Greenplum RoaringBitmap多阶段聚合</a><br>2018/08/10  <a href="http://mysql.taobao.org/monthly/2018/08/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 高并发空间位置更新、多属性KNN搜索并测</a></p><h3 id="2018-07"><a href="#2018-07" class="headerlink" title="2018/07"></a>2018/07</h3><p>2018/07/01  <a href="http://mysql.taobao.org/monthly/2018/07/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · WAL那些事儿</a><br>2018/07/02  <a href="http://mysql.taobao.org/monthly/2018/07/02/" target="_blank" rel="noopener">MySQL · 源码分析 · 8.0 原子DDL的实现过程续</a><br>2018/07/03  <a href="http://mysql.taobao.org/monthly/2018/07/03/" target="_blank" rel="noopener">MongoDB · 引擎特性 · 事务实现解析</a><br>2018/07/04  <a href="http://mysql.taobao.org/monthly/2018/07/04/" target="_blank" rel="noopener">MySQL · RocksDB ·  写入逻辑的实现</a><br>2018/07/05  <a href="http://mysql.taobao.org/monthly/2018/07/05/" target="_blank" rel="noopener">MySQL · 源码分析 · binlog crash recovery</a><br>2018/07/06  <a href="http://mysql.taobao.org/monthly/2018/07/06/" target="_blank" rel="noopener">PgSQL · 新特征 · PG11并行Hash Join介绍</a><br>2018/07/07  <a href="http://mysql.taobao.org/monthly/2018/07/07/" target="_blank" rel="noopener">MySQL · myrocks · clustered index特性</a><br>2018/07/08  <a href="http://mysql.taobao.org/monthly/2018/07/08/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 实例级别数据库上云RDS SQL Server</a><br>2018/07/09  <a href="http://mysql.taobao.org/monthly/2018/07/09/" target="_blank" rel="noopener">MySQL · 最佳实践 · 一个TPC-C测试工具sqlbench使用</a><br>2018/07/10  <a href="http://mysql.taobao.org/monthly/2018/07/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL flashback(闪回) 功能实现与介绍</a></p><h3 id="2018-06"><a href="#2018-06" class="headerlink" title="2018/06"></a>2018/06</h3><p>2018/06/01  <a href="http://mysql.taobao.org/monthly/2018/06/01/" target="_blank" rel="noopener">MySQL · 特性分析 · 8.0 对WAL的设计修改</a><br>2018/06/02  <a href="http://mysql.taobao.org/monthly/2018/06/02/" target="_blank" rel="noopener">MariaDB · 特性分析 · 基于GTID的复制分析</a><br>2018/06/03  <a href="http://mysql.taobao.org/monthly/2018/06/03/" target="_blank" rel="noopener">MySQL · 最佳实践 · 难以置信，MySQL也可以无损自由切换</a><br>2018/06/04  <a href="http://mysql.taobao.org/monthly/2018/06/04/" target="_blank" rel="noopener">MySQL · 特性分析 · 8.0 WriteSet 并行复制</a><br>2018/06/05  <a href="http://mysql.taobao.org/monthly/2018/06/05/" target="_blank" rel="noopener">MongoDB · 引擎特性 · writeConcern原理解析</a><br>2018/06/06  <a href="http://mysql.taobao.org/monthly/2018/06/06/" target="_blank" rel="noopener">MSSQL · 最佳实践 ·  RDS SDK实现数据库迁移上阿里云RDS SQL Server</a><br>2018/06/07  <a href="http://mysql.taobao.org/monthly/2018/06/07/" target="_blank" rel="noopener">PgSQL · 内核特性 · RDS PostgreSQL 高并发场景下提高系统吞吐量</a><br>2018/06/08  <a href="http://mysql.taobao.org/monthly/2018/06/08/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgresPro buildin pool原理分析与测试</a><br>2018/06/09  <a href="http://mysql.taobao.org/monthly/2018/06/09/" target="_blank" rel="noopener">MySQL · RocksDB · Column Family介绍</a><br>2018/06/10  <a href="http://mysql.taobao.org/monthly/2018/06/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL + PostGIS 时态分析</a></p><h3 id="2018-05"><a href="#2018-05" class="headerlink" title="2018/05"></a>2018/05</h3><p>2018/05/01  <a href="http://mysql.taobao.org/monthly/2018/05/01/" target="_blank" rel="noopener">MySQL · Community · Congratulations on MySQL 8.0 GA</a><br>2018/05/02  <a href="http://mysql.taobao.org/monthly/2018/05/02/" target="_blank" rel="noopener">MySQL · 社区动态 · Online DDL 工具 gh-ost 支持阿里云 RDS</a><br>2018/05/03  <a href="http://mysql.taobao.org/monthly/2018/05/03/" target="_blank" rel="noopener">MySQL · 特性分析 · MySQL 8.0 资源组 (Resource Groups)</a><br>2018/05/04  <a href="http://mysql.taobao.org/monthly/2018/05/04/" target="_blank" rel="noopener">MySQL · 引擎分析 · InnoDB行锁分析</a><br>2018/05/05  <a href="http://mysql.taobao.org/monthly/2018/05/05/" target="_blank" rel="noopener">PgSQL · 特性分析 · 神奇的pg_rewind</a><br>2018/05/06  <a href="http://mysql.taobao.org/monthly/2018/05/06/" target="_blank" rel="noopener">MSSQL · 最佳实践 ·  阿里云RDS SQL自动化迁移上云的一种解决方案</a><br>2018/05/07  <a href="http://mysql.taobao.org/monthly/2018/05/07/" target="_blank" rel="noopener">MongoDB · 引擎特性 · journal 与 oplog，究竟谁先写入？</a><br>2018/05/08  <a href="http://mysql.taobao.org/monthly/2018/05/08/" target="_blank" rel="noopener">MySQL · RocksDB · MANIFEST文件介绍</a><br>2018/05/09  <a href="http://mysql.taobao.org/monthly/2018/05/09/" target="_blank" rel="noopener">MySQL · 源码分析 · change master to</a><br>2018/05/10  <a href="http://mysql.taobao.org/monthly/2018/05/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 阿里云 RDS PostgreSQL 高并发特性 vs 社区版本</a></p><h3 id="2018-04"><a href="#2018-04" class="headerlink" title="2018/04"></a>2018/04</h3><p>2018/04/01  <a href="http://mysql.taobao.org/monthly/2018/04/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 表空间加密</a><br>2018/04/02  <a href="http://mysql.taobao.org/monthly/2018/04/02/" target="_blank" rel="noopener">MongoDB · myrocks · mongorocks 引擎原理解析</a><br>2018/04/03  <a href="http://mysql.taobao.org/monthly/2018/04/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 数据页解析</a><br>2018/04/04  <a href="http://mysql.taobao.org/monthly/2018/04/04/" target="_blank" rel="noopener">MySQL · MyRocks · TTL特性介绍</a><br>2018/04/05  <a href="http://mysql.taobao.org/monthly/2018/04/05/" target="_blank" rel="noopener">MySQL · 源码分析 · 协议模块浅析</a><br>2018/04/06  <a href="http://mysql.taobao.org/monthly/2018/04/06/" target="_blank" rel="noopener">MSSQL · 最佳实践 ·  如何监控备份还原进度</a><br>2018/04/07  <a href="http://mysql.taobao.org/monthly/2018/04/07/" target="_blank" rel="noopener">MySQL · 特性分析 · MySQL的预编译功能</a><br>2018/04/08  <a href="http://mysql.taobao.org/monthly/2018/04/08/" target="_blank" rel="noopener">MySQL · 特性分析 · (deleted) 临时空间</a><br>2018/04/09  <a href="http://mysql.taobao.org/monthly/2018/04/09/" target="_blank" rel="noopener">MySQL · RocksDB · WAL(WriteAheadLog)介绍</a><br>2018/04/10  <a href="http://mysql.taobao.org/monthly/2018/04/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 相似文本识别与去重</a></p><h3 id="2018-03"><a href="#2018-03" class="headerlink" title="2018/03"></a>2018/03</h3><p>2018/03/01  <a href="http://mysql.taobao.org/monthly/2018/03/01/" target="_blank" rel="noopener">MySQL · 源码分析 · InnoDB的read view，回滚段和purge过程简介</a><br>2018/03/02  <a href="http://mysql.taobao.org/monthly/2018/03/02/" target="_blank" rel="noopener">MySQL · 源码分析 · 原子DDL的实现过程</a><br>2018/03/03  <a href="http://mysql.taobao.org/monthly/2018/03/03/" target="_blank" rel="noopener">MongoDB · Feature · In-place update in MongoDB</a><br>2018/03/04  <a href="http://mysql.taobao.org/monthly/2018/03/04/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案</a><br>2018/03/05  <a href="http://mysql.taobao.org/monthly/2018/03/05/" target="_blank" rel="noopener">PgSQL · 内核优化 ·  Hybrid DB for PG 赋能向量化执行和查询子树封装</a><br>2018/03/06  <a href="http://mysql.taobao.org/monthly/2018/03/06/" target="_blank" rel="noopener">MySQL · 特性分析 · innodb_buffer_pool_size在线修改</a><br>2018/03/07  <a href="http://mysql.taobao.org/monthly/2018/03/07/" target="_blank" rel="noopener">MySQL · myrocks · 事务锁分析</a><br>2018/03/08  <a href="http://mysql.taobao.org/monthly/2018/03/08/" target="_blank" rel="noopener">PgSQL · 特性分析 · 事务ID回卷问题</a><br>2018/03/09  <a href="http://mysql.taobao.org/monthly/2018/03/09/" target="_blank" rel="noopener">MariaDB · 源码分析 · thread pool</a><br>2018/03/10  <a href="http://mysql.taobao.org/monthly/2018/03/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 毫秒级文本相似搜索实践一</a></p><h3 id="2018-02"><a href="#2018-02" class="headerlink" title="2018/02"></a>2018/02</h3><p>2018/02/01  <a href="http://mysql.taobao.org/monthly/2018/02/01/" target="_blank" rel="noopener">MySQL · 源码分析 · 常用SQL语句的MDL加锁源码分析</a><br>2018/02/02  <a href="http://mysql.taobao.org/monthly/2018/02/02/" target="_blank" rel="noopener">Influxdb · 源码分析 · Influxdb cluster实现探究</a><br>2018/02/03  <a href="http://mysql.taobao.org/monthly/2018/02/03/" target="_blank" rel="noopener">MySQL · 源码分析 · 权限浅析</a><br>2018/02/04  <a href="http://mysql.taobao.org/monthly/2018/02/04/" target="_blank" rel="noopener">PgSQL · 源码分析 · AutoVacuum机制之autovacuum worker</a><br>2018/02/05  <a href="http://mysql.taobao.org/monthly/2018/02/05/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 数据库恢复模式与备份的关系</a><br>2018/02/06  <a href="http://mysql.taobao.org/monthly/2018/02/06/" target="_blank" rel="noopener">PgSQL · 最佳实践 · 利用异步 dblink 快速从 oss 装载数据</a><br>2018/02/07  <a href="http://mysql.taobao.org/monthly/2018/02/07/" target="_blank" rel="noopener">MySQL · 源码分析 · 新连接的建立</a><br>2018/02/08  <a href="http://mysql.taobao.org/monthly/2018/02/08/" target="_blank" rel="noopener">MySQL ·  引擎特性 ·  INFORMATION_SCHEMA系统表的实现</a><br>2018/02/09  <a href="http://mysql.taobao.org/monthly/2018/02/09/" target="_blank" rel="noopener">MySQL · 最佳实践 · 在线收缩UNDO Tablespace</a><br>2018/02/10  <a href="http://mysql.taobao.org/monthly/2018/02/10/" target="_blank" rel="noopener">PgSQL · 应用案例 ·  自定义并行聚合函数的原理与实践</a></p><h3 id="2018-01"><a href="#2018-01" class="headerlink" title="2018/01"></a>2018/01</h3><p>2018/01/01  <a href="http://mysql.taobao.org/monthly/2018/01/01/" target="_blank" rel="noopener">MySQL ·  引擎特性 ·  Group Replication内核解析之二</a><br>2018/01/02  <a href="http://mysql.taobao.org/monthly/2018/01/02/" target="_blank" rel="noopener">MySQL ·  引擎特性 ·  MySQL内核对读写分离的支持</a><br>2018/01/03  <a href="http://mysql.taobao.org/monthly/2018/01/03/" target="_blank" rel="noopener">PgSQL · 内核解析 · 同步流复制实现分析</a><br>2018/01/04  <a href="http://mysql.taobao.org/monthly/2018/01/04/" target="_blank" rel="noopener">MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析</a><br>2018/01/05  <a href="http://mysql.taobao.org/monthly/2018/01/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · Error in munmap() “Cannot allocate memory”</a><br>2018/01/06  <a href="http://mysql.taobao.org/monthly/2018/01/06/" target="_blank" rel="noopener">MSSQL · 最佳实践 · 数据库备份链</a><br>2018/01/07  <a href="http://mysql.taobao.org/monthly/2018/01/07/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 字符集相关变量介绍及binlog中字符集相关缺陷分析</a><br>2018/01/08  <a href="http://mysql.taobao.org/monthly/2018/01/08/" target="_blank" rel="noopener">PgSQL · 应用案例 ·  传统分库分表(sharding)的缺陷与破解之法</a><br>2018/01/09  <a href="http://mysql.taobao.org/monthly/2018/01/09/" target="_blank" rel="noopener">MySQL · MyRocks · MyRocks参数介绍</a><br>2018/01/10  <a href="http://mysql.taobao.org/monthly/2018/01/10/" target="_blank" rel="noopener">PgSQL · 应用案例 ·  惊天性能！单RDS PostgreSQL实例支撑 2000亿</a></p><h3 id="2017-12"><a href="#2017-12" class="headerlink" title="2017/12"></a>2017/12</h3><p>2017/12/01  <a href="http://mysql.taobao.org/monthly/2017/12/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 事务系统</a><br>2017/12/02  <a href="http://mysql.taobao.org/monthly/2017/12/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · Innodb 锁子系统浅析</a><br>2017/12/03  <a href="http://mysql.taobao.org/monthly/2017/12/03/" target="_blank" rel="noopener">MySQL · 特性分析 · LOGICAL_CLOCK 并行复制原理及实现分析</a><br>2017/12/04  <a href="http://mysql.taobao.org/monthly/2017/12/04/" target="_blank" rel="noopener">PgSQL · 源码分析 · AutoVacuum机制之autovacuum launcher</a><br>2017/12/05  <a href="http://mysql.taobao.org/monthly/2017/12/05/" target="_blank" rel="noopener">MSSQL · 最佳实践 ·  SQL Server备份策略</a><br>2017/12/06  <a href="http://mysql.taobao.org/monthly/2017/12/06/" target="_blank" rel="noopener">MySQL · 最佳实践 · 一个“异常”的索引选择</a><br>2017/12/07  <a href="http://mysql.taobao.org/monthly/2017/12/07/" target="_blank" rel="noopener">PgSQL · 内核开发 · 利用一致性快照迁移你的数据</a><br>2017/12/08  <a href="http://mysql.taobao.org/monthly/2017/12/08/" target="_blank" rel="noopener">PgSQL · 应用案例 · 手机行业分析、决策系统设计-实时圈选、透视、估算</a><br>2017/12/09  <a href="http://mysql.taobao.org/monthly/2017/12/09/" target="_blank" rel="noopener">MySQL · 最佳实践 · 如何索引JSON字段</a><br>2017/12/10  <a href="http://mysql.taobao.org/monthly/2017/12/10/" target="_blank" rel="noopener">MySQL · myrocks · 相关tools介绍</a></p><h3 id="2017-11"><a href="#2017-11" class="headerlink" title="2017/11"></a>2017/11</h3><p>2017/11/01  <a href="http://mysql.taobao.org/monthly/2017/11/01/" target="_blank" rel="noopener">MySQL · 数据恢复 · undrop-for-innodb</a><br>2017/11/02  <a href="http://mysql.taobao.org/monthly/2017/11/02/" target="_blank" rel="noopener">MySQL ·  引擎特性 ·  DROP TABLE之binlog解析</a><br>2017/11/03  <a href="http://mysql.taobao.org/monthly/2017/11/03/" target="_blank" rel="noopener">MSSQL · 最佳实践 ·  SQL Server三种常见备份</a><br>2017/11/04  <a href="http://mysql.taobao.org/monthly/2017/11/04/" target="_blank" rel="noopener">MySQL · 最佳实践 · 什么时候该升级内存规格</a><br>2017/11/05  <a href="http://mysql.taobao.org/monthly/2017/11/05/" target="_blank" rel="noopener">MySQL · 源码分析 · InnoDB LRU List刷脏改进之路</a><br>2017/11/06  <a href="http://mysql.taobao.org/monthly/2017/11/06/" target="_blank" rel="noopener">MySQL · 特性分析 · MySQL 5.7 外部XA Replication实现及缺陷分析</a><br>2017/11/07  <a href="http://mysql.taobao.org/monthly/2017/11/07/" target="_blank" rel="noopener">PgSQL · 最佳实践 ·  双十一数据运营平台订单Feed数据洪流实时分析方案</a><br>2017/11/08  <a href="http://mysql.taobao.org/monthly/2017/11/08/" target="_blank" rel="noopener">MySQL · 引擎特性 · TokuDB hot-index机制</a><br>2017/11/09  <a href="http://mysql.taobao.org/monthly/2017/11/09/" target="_blank" rel="noopener">MySQL · 最佳实践 · 分区表基本类型</a><br>2017/11/10  <a href="http://mysql.taobao.org/monthly/2017/11/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · 流式计算与异步消息在阿里实时订单监测中的应用</a></p><h3 id="2017-10"><a href="#2017-10" class="headerlink" title="2017/10"></a>2017/10</h3><p>2017/10/01  <a href="http://mysql.taobao.org/monthly/2017/10/01/" target="_blank" rel="noopener">PgSQL · 特性分析 · MVCC机制浅析</a><br>2017/10/02  <a href="http://mysql.taobao.org/monthly/2017/10/02/" target="_blank" rel="noopener">MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取</a><br>2017/10/03  <a href="http://mysql.taobao.org/monthly/2017/10/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB mini transation</a><br>2017/10/04  <a href="http://mysql.taobao.org/monthly/2017/10/04/" target="_blank" rel="noopener">MySQL · 特性介绍 · 一些流行引擎存储格式简介</a><br>2017/10/05  <a href="http://mysql.taobao.org/monthly/2017/10/05/" target="_blank" rel="noopener">MSSQL · 架构分析 · 从SQL Server 2017发布看SQL Server架构的演变</a><br>2017/10/06  <a href="http://mysql.taobao.org/monthly/2017/10/06/" target="_blank" rel="noopener">MySQL · 引擎介绍 · Sphinx源码剖析(三)</a><br>2017/10/07  <a href="http://mysql.taobao.org/monthly/2017/10/07/" target="_blank" rel="noopener">PgSQL · 内核开发 · 如何管理你的 PostgreSQL 插件</a><br>2017/10/08  <a href="http://mysql.taobao.org/monthly/2017/10/08/" target="_blank" rel="noopener">MySQL · 特性分析 · 数据一样checksum不一样</a><br>2017/10/09  <a href="http://mysql.taobao.org/monthly/2017/10/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · 经营、销售分析系统DB设计之共享充电宝</a><br>2017/10/10  <a href="http://mysql.taobao.org/monthly/2017/10/10/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 信号处理机制分析</a></p><h3 id="2017-09"><a href="#2017-09" class="headerlink" title="2017/09"></a>2017/09</h3><p>2017/09/01  <a href="http://mysql.taobao.org/monthly/2017/09/01/" target="_blank" rel="noopener">POLARDB · 新品介绍 · 深入了解阿里云新一代产品 POLARDB</a><br>2017/09/02  <a href="http://mysql.taobao.org/monthly/2017/09/02/" target="_blank" rel="noopener">HybridDB · 最佳实践 · 阿里云数据库PetaData</a><br>2017/09/03  <a href="http://mysql.taobao.org/monthly/2017/09/03/" target="_blank" rel="noopener">MySQL · 捉虫动态 · show binary logs 灵异事件</a><br>2017/09/04  <a href="http://mysql.taobao.org/monthly/2017/09/04/" target="_blank" rel="noopener">MySQL · myrocks · myrocks之Bloom filter</a><br>2017/09/05  <a href="http://mysql.taobao.org/monthly/2017/09/05/" target="_blank" rel="noopener">MySQL · 特性分析 · 浅谈 MySQL 5.7 XA 事务改进</a><br>2017/09/06  <a href="http://mysql.taobao.org/monthly/2017/09/06/" target="_blank" rel="noopener">MySQL · 特性分析 · 利用gdb跟踪MDL加锁过程</a><br>2017/09/07  <a href="http://mysql.taobao.org/monthly/2017/09/07/" target="_blank" rel="noopener">MySQL · 源码分析 · Innodb 引擎Redo日志存储格式简介</a><br>2017/09/08  <a href="http://mysql.taobao.org/monthly/2017/09/08/" target="_blank" rel="noopener">MSSQL · 应用案例 · 日志表设计优化与实现</a><br>2017/09/09  <a href="http://mysql.taobao.org/monthly/2017/09/09/" target="_blank" rel="noopener">PgSQL · 应用案例 ·  海量用户实时定位和圈人-团圆社会公益系统</a><br>2017/09/10  <a href="http://mysql.taobao.org/monthly/2017/09/10/" target="_blank" rel="noopener">MySQL · 源码分析 · 一条insert语句的执行过程</a></p><h3 id="2017-08"><a href="#2017-08" class="headerlink" title="2017/08"></a>2017/08</h3><p>2017/08/01  <a href="http://mysql.taobao.org/monthly/2017/08/01/" target="_blank" rel="noopener">MySQL ·  引擎特性 ·  Group Replication内核解析</a><br>2017/08/02  <a href="http://mysql.taobao.org/monthly/2017/08/02/" target="_blank" rel="noopener">PgSQL · 特性介绍 ·  列存元数据扫描介绍</a><br>2017/08/03  <a href="http://mysql.taobao.org/monthly/2017/08/03/" target="_blank" rel="noopener">MySQL · 源码分析 · MySQL replication partial transaction</a><br>2017/08/04  <a href="http://mysql.taobao.org/monthly/2017/08/04/" target="_blank" rel="noopener">MySQL · 特性分析 · 到底是谁执行了FTWL</a><br>2017/08/05  <a href="http://mysql.taobao.org/monthly/2017/08/05/" target="_blank" rel="noopener">MySQL · 源码分析 ·  mysql认证阶段漫游</a><br>2017/08/06  <a href="http://mysql.taobao.org/monthly/2017/08/06/" target="_blank" rel="noopener">MySQL · 源码分析 · 内存分配机制</a><br>2017/08/07  <a href="http://mysql.taobao.org/monthly/2017/08/07/" target="_blank" rel="noopener">PgSQL · 源码分析 · PG 优化器中的pathkey与索引在排序时的使用</a><br>2017/08/08  <a href="http://mysql.taobao.org/monthly/2017/08/08/" target="_blank" rel="noopener">MSSQL· 实现分析 ·  Extend Event日志文件的分析方法</a><br>2017/08/09  <a href="http://mysql.taobao.org/monthly/2017/08/09/" target="_blank" rel="noopener">MySQL · 源码分析 · SHUTDOWN过程</a><br>2017/08/10  <a href="http://mysql.taobao.org/monthly/2017/08/10/" target="_blank" rel="noopener">PgSQL · 应用案例 ·  HDB for PG特性(数据排盘与任意列高效率过滤)</a></p><h3 id="2017-07"><a href="#2017-07" class="headerlink" title="2017/07"></a>2017/07</h3><p>2017/07/01  <a href="http://mysql.taobao.org/monthly/2017/07/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB崩溃恢复</a><br>2017/07/02  <a href="http://mysql.taobao.org/monthly/2017/07/02/" target="_blank" rel="noopener">PgSQL · 应用案例 · 阿里云RDS金融数据库(三节点版) - 背景篇</a><br>2017/07/03  <a href="http://mysql.taobao.org/monthly/2017/07/03/" target="_blank" rel="noopener">AliSQL · 特性介绍 · 支持 Invisible Indexes</a><br>2017/07/04  <a href="http://mysql.taobao.org/monthly/2017/07/04/" target="_blank" rel="noopener">TokuDB · 引擎特性 · HybridDB for MySQL高压缩引擎TokuDB 揭秘</a><br>2017/07/05  <a href="http://mysql.taobao.org/monthly/2017/07/05/" target="_blank" rel="noopener">MySQL · myrocks · myrocks写入分析</a><br>2017/07/06  <a href="http://mysql.taobao.org/monthly/2017/07/06/" target="_blank" rel="noopener">MSSQL · 实现分析 · Extend Event实现审计日志对SQL Server性能影响</a><br>2017/07/07  <a href="http://mysql.taobao.org/monthly/2017/07/07/" target="_blank" rel="noopener">HybridDB · 源码分析 · MemoryContext 内存管理和内存异常分析</a><br>2017/07/08  <a href="http://mysql.taobao.org/monthly/2017/07/08/" target="_blank" rel="noopener">MySQL · 实现分析 · HybridDB for MySQL 数据压缩</a><br>2017/07/09  <a href="http://mysql.taobao.org/monthly/2017/07/09/" target="_blank" rel="noopener">PgSQL · 最佳实践 · CPU满问题处理</a><br>2017/07/10  <a href="http://mysql.taobao.org/monthly/2017/07/10/" target="_blank" rel="noopener">MySQL · 源码分析 · InnoDB 异步IO工作流程</a></p><h3 id="2017-06"><a href="#2017-06" class="headerlink" title="2017/06"></a>2017/06</h3><p>2017/06/01  <a href="http://mysql.taobao.org/monthly/2017/06/01/" target="_blank" rel="noopener">MySQL · 源码分析 ·  Tokudb序列化和反序列化过程</a><br>2017/06/02  <a href="http://mysql.taobao.org/monthly/2017/06/02/" target="_blank" rel="noopener">PgSQL · 应用案例 · HTAP视角,数据与计算的生态融合</a><br>2017/06/03  <a href="http://mysql.taobao.org/monthly/2017/06/03/" target="_blank" rel="noopener">MySQL · 引擎特性 · 从节点可更新机制</a><br>2017/06/04  <a href="http://mysql.taobao.org/monthly/2017/06/04/" target="_blank" rel="noopener">PgSQL · 特性分析 · 数据库崩溃恢复（下）</a><br>2017/06/05  <a href="http://mysql.taobao.org/monthly/2017/06/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · InnoDB crash</a><br>2017/06/06  <a href="http://mysql.taobao.org/monthly/2017/06/06/" target="_blank" rel="noopener">MSSQL · 实现分析 · SQL Server实现审计日志的方案探索</a><br>2017/06/07  <a href="http://mysql.taobao.org/monthly/2017/06/07/" target="_blank" rel="noopener">MySQL · 源码分析  · InnoDB Repeatable Read隔离级别之大不同</a><br>2017/06/08  <a href="http://mysql.taobao.org/monthly/2017/06/08/" target="_blank" rel="noopener">MySQL · myrocks · MyRocks之memtable切换与刷盘</a><br>2017/06/09  <a href="http://mysql.taobao.org/monthly/2017/06/09/" target="_blank" rel="noopener">PgSQL · 最佳实践 · 云上的数据迁移</a><br>2017/06/10  <a href="http://mysql.taobao.org/monthly/2017/06/10/" target="_blank" rel="noopener">MySQL · 社区新闻 · MariaDB 10.2 GA</a></p><h3 id="2017-05"><a href="#2017-05" class="headerlink" title="2017/05"></a>2017/05</h3><p>2017/05/01  <a href="http://mysql.taobao.org/monthly/2017/05/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB Buffer Pool</a><br>2017/05/02  <a href="http://mysql.taobao.org/monthly/2017/05/02/" target="_blank" rel="noopener">AliSQL · 特性介绍 · 动态加字段</a><br>2017/05/03  <a href="http://mysql.taobao.org/monthly/2017/05/03/" target="_blank" rel="noopener">PgSQL · 特性分析 · 数据库崩溃恢复（上）</a><br>2017/05/04  <a href="http://mysql.taobao.org/monthly/2017/05/04/" target="_blank" rel="noopener">MySQL · 答疑解惑 · MySQL 的那些网络超时错误</a><br>2017/05/05  <a href="http://mysql.taobao.org/monthly/2017/05/05/" target="_blank" rel="noopener">HybridDB · 最佳实践 · HybridDB 数据合并的方法与原理</a><br>2017/05/06  <a href="http://mysql.taobao.org/monthly/2017/05/06/" target="_blank" rel="noopener">MSSQL · 应用案例 · 构建死锁自动收集系统</a><br>2017/05/07  <a href="http://mysql.taobao.org/monthly/2017/05/07/" target="_blank" rel="noopener">PostgreSQL · 实现分析 · PostgreSQL 10.0 并行查询和外部表的结合</a><br>2017/05/08  <a href="http://mysql.taobao.org/monthly/2017/05/08/" target="_blank" rel="noopener">RocksDB · 特性介绍 · HashLinkList 内存表</a><br>2017/05/09  <a href="http://mysql.taobao.org/monthly/2017/05/09/" target="_blank" rel="noopener">MySQL · myrocks · fast data load</a><br>2017/05/10  <a href="http://mysql.taobao.org/monthly/2017/05/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · “写入、共享、存储、计算” 最佳实践</a></p><h3 id="2017-04"><a href="#2017-04" class="headerlink" title="2017/04"></a>2017/04</h3><p>2017/04/01  <a href="http://mysql.taobao.org/monthly/2017/04/01/" target="_blank" rel="noopener">MySQL · 源码分析 · MySQL 半同步复制数据一致性分析</a><br>2017/04/02  <a href="http://mysql.taobao.org/monthly/2017/04/02/" target="_blank" rel="noopener">MYSQL · 新特性 · MySQL 8.0对Parser所做的改进</a><br>2017/04/03  <a href="http://mysql.taobao.org/monthly/2017/04/03/" target="_blank" rel="noopener">MySQL · 引擎介绍 · Sphinx源码剖析（二）</a><br>2017/04/04  <a href="http://mysql.taobao.org/monthly/2017/04/04/" target="_blank" rel="noopener">PgSQL · 特性分析 · checkpoint机制浅析</a><br>2017/04/05  <a href="http://mysql.taobao.org/monthly/2017/04/05/" target="_blank" rel="noopener">MySQL · 特性分析 · common table expression</a><br>2017/04/06  <a href="http://mysql.taobao.org/monthly/2017/04/06/" target="_blank" rel="noopener">PgSQL · 应用案例 · 逻辑订阅给业务架构带来了什么？</a><br>2017/04/07  <a href="http://mysql.taobao.org/monthly/2017/04/07/" target="_blank" rel="noopener">MSSQL · 应用案例 · 基于内存优化表的列存储索引分析Web Access Log</a><br>2017/04/08  <a href="http://mysql.taobao.org/monthly/2017/04/08/" target="_blank" rel="noopener">TokuDB · 捉虫动态 · MRR 导致查询失败</a><br>2017/04/09  <a href="http://mysql.taobao.org/monthly/2017/04/09/" target="_blank" rel="noopener">HybridDB · 稳定性 · HybridDB如何优雅的处理Out Of Memery问题</a><br>2017/04/10  <a href="http://mysql.taobao.org/monthly/2017/04/10/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 5.7 mysql_upgrade 元数据锁等待</a></p><h3 id="2017-03"><a href="#2017-03" class="headerlink" title="2017/03"></a>2017/03</h3><p>2017/03/01  <a href="http://mysql.taobao.org/monthly/2017/03/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB IO子系统</a><br>2017/03/02  <a href="http://mysql.taobao.org/monthly/2017/03/02/" target="_blank" rel="noopener">PgSQL · 特性分析 · Write-Ahead Logging机制浅析</a><br>2017/03/03  <a href="http://mysql.taobao.org/monthly/2017/03/03/" target="_blank" rel="noopener">MySQL · 性能优化 · MySQL常见SQL错误用法</a><br>2017/03/04  <a href="http://mysql.taobao.org/monthly/2017/03/04/" target="_blank" rel="noopener">MSSQL · 特性分析 · 列存储技术做实时分析</a><br>2017/03/05  <a href="http://mysql.taobao.org/monthly/2017/03/05/" target="_blank" rel="noopener">MySQL · 新特性分析 · 5.7中Derived table变形记</a><br>2017/03/06  <a href="http://mysql.taobao.org/monthly/2017/03/06/" target="_blank" rel="noopener">MySQL · 实现分析 · 对字符集和字符序支持的实现</a><br>2017/03/07  <a href="http://mysql.taobao.org/monthly/2017/03/07/" target="_blank" rel="noopener">MySQL · 源码分析 · MySQL BINLOG半同步复制数据安全性分析</a><br>2017/03/08  <a href="http://mysql.taobao.org/monthly/2017/03/08/" target="_blank" rel="noopener">HybridDB · 性能优化 · Count Distinct的几种实现方式</a><br>2017/03/09  <a href="http://mysql.taobao.org/monthly/2017/03/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · PostgreSQL OLAP加速技术之向量计算</a><br>2017/03/10  <a href="http://mysql.taobao.org/monthly/2017/03/10/" target="_blank" rel="noopener">MySQL · myrocks · myrocks监控信息</a></p><h3 id="2017-02"><a href="#2017-02" class="headerlink" title="2017/02"></a>2017/02</h3><p>2017/02/01  <a href="http://mysql.taobao.org/monthly/2017/02/01/" target="_blank" rel="noopener">AliSQL · 开源 · Sequence Engine</a><br>2017/02/02  <a href="http://mysql.taobao.org/monthly/2017/02/02/" target="_blank" rel="noopener">MySQL · myrocks · myrocks之备份恢复</a><br>2017/02/03  <a href="http://mysql.taobao.org/monthly/2017/02/03/" target="_blank" rel="noopener">MySQL · 挖坑 · LOCK_active_mi/LOCK_msp_map 优化思路</a><br>2017/02/04  <a href="http://mysql.taobao.org/monthly/2017/02/04/" target="_blank" rel="noopener">MySQL · 源码分析 · 词法分析及其性能优化</a><br>2017/02/05  <a href="http://mysql.taobao.org/monthly/2017/02/05/" target="_blank" rel="noopener">SQL优化 · 经典案例 · 索引篇</a><br>2017/02/06  <a href="http://mysql.taobao.org/monthly/2017/02/06/" target="_blank" rel="noopener">MySQL · 新特性分析 · CTE执行过程与实现原理</a><br>2017/02/07  <a href="http://mysql.taobao.org/monthly/2017/02/07/" target="_blank" rel="noopener">PgSQL · 源码分析 · PG优化器物理查询优化</a><br>2017/02/08  <a href="http://mysql.taobao.org/monthly/2017/02/08/" target="_blank" rel="noopener">SQL Server · 特性介绍 · 聚集列存储索引</a><br>2017/02/09  <a href="http://mysql.taobao.org/monthly/2017/02/09/" target="_blank" rel="noopener">PgSQL · 应用案例 · 聚集存储 与 BRIN索引</a><br>2017/02/10  <a href="http://mysql.taobao.org/monthly/2017/02/10/" target="_blank" rel="noopener">PgSQL · 应用案例 · GIN索引在任意组合查询中的应用</a></p><h3 id="2017-01"><a href="#2017-01" class="headerlink" title="2017/01"></a>2017/01</h3><p>2017/01/01  <a href="http://mysql.taobao.org/monthly/2017/01/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 同步机制</a><br>2017/01/02  <a href="http://mysql.taobao.org/monthly/2017/01/02/" target="_blank" rel="noopener">MySQL · myrocks · myrocks index condition pushdown</a><br>2017/01/03  <a href="http://mysql.taobao.org/monthly/2017/01/03/" target="_blank" rel="noopener">PgSQL · 案例分享 · PostgreSQL+HybridDB解决企业TP+AP混合需求</a><br>2017/01/04  <a href="http://mysql.taobao.org/monthly/2017/01/04/" target="_blank" rel="noopener">MongoDB · 特性分析 · 网络性能优化</a><br>2017/01/05  <a href="http://mysql.taobao.org/monthly/2017/01/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · event_scheduler 慢日志记错</a><br>2017/01/06  <a href="http://mysql.taobao.org/monthly/2017/01/06/" target="_blank" rel="noopener">PgSQL · 引擎介绍 · 向量化执行引擎简介</a><br>2017/01/07  <a href="http://mysql.taobao.org/monthly/2017/01/07/" target="_blank" rel="noopener">SQL Server · 特性分析 ·  2012列存储索引技术</a><br>2017/01/08  <a href="http://mysql.taobao.org/monthly/2017/01/08/" target="_blank" rel="noopener">PgSQL · 乱入拜年 · 小鸡吉吉和小象Pi吉(PostgreSQL)的鸡年传奇</a><br>2017/01/09  <a href="http://mysql.taobao.org/monthly/2017/01/09/" target="_blank" rel="noopener">MySQL · 特性分析 · 5.7 error log 时区和系统时区不同</a><br>2017/01/10  <a href="http://mysql.taobao.org/monthly/2017/01/10/" target="_blank" rel="noopener">TokuDB · 源码分析 · 一条query语句的执行过程</a></p><h3 id="2016-12"><a href="#2016-12" class="headerlink" title="2016/12"></a>2016/12</h3><p>2016/12/01  <a href="http://mysql.taobao.org/monthly/2016/12/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · Infobright 列存数据库</a><br>2016/12/02  <a href="http://mysql.taobao.org/monthly/2016/12/02/" target="_blank" rel="noopener">MySQL · myrocks · myrocks统计信息</a><br>2016/12/03  <a href="http://mysql.taobao.org/monthly/2016/12/03/" target="_blank" rel="noopener">SQL Server · 特性介绍 · 统计信息</a><br>2016/12/04  <a href="http://mysql.taobao.org/monthly/2016/12/04/" target="_blank" rel="noopener">PgSQL · 案例分享 · 从春运抢火车票思考数据库设计</a><br>2016/12/05  <a href="http://mysql.taobao.org/monthly/2016/12/05/" target="_blank" rel="noopener">HybridDB · 最佳实践 · OLAP和OLTP一体化打造</a><br>2016/12/06  <a href="http://mysql.taobao.org/monthly/2016/12/06/" target="_blank" rel="noopener">TokuDB · 特性分析 · 导入数据大杀器：Loader</a><br>2016/12/07  <a href="http://mysql.taobao.org/monthly/2016/12/07/" target="_blank" rel="noopener">PgSQL · 案例分享 · PostgreSQL 性能诊断指南</a><br>2016/12/08  <a href="http://mysql.taobao.org/monthly/2016/12/08/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 5.6中ORDER BY + LIMIT 错选执行计划</a><br>2016/12/09  <a href="http://mysql.taobao.org/monthly/2016/12/09/" target="_blank" rel="noopener">Redis · 最佳实践 · 阿里云Redis助力双11业务</a><br>2016/12/10  <a href="http://mysql.taobao.org/monthly/2016/12/10/" target="_blank" rel="noopener">PgSQL · 案例分享 · 递归收敛优化</a></p><h3 id="2016-11"><a href="#2016-11" class="headerlink" title="2016/11"></a>2016/11</h3><p>2016/11/01  <a href="http://mysql.taobao.org/monthly/2016/11/01/" target="_blank" rel="noopener">PgSQL · 特性分析 · 金融级同步多副本分级配置方法</a><br>2016/11/02  <a href="http://mysql.taobao.org/monthly/2016/11/02/" target="_blank" rel="noopener">MySQL · myrocks · myrocks之事务处理</a><br>2016/11/03  <a href="http://mysql.taobao.org/monthly/2016/11/03/" target="_blank" rel="noopener">MySQL · TokuDB · rbtree block allocator</a><br>2016/11/04  <a href="http://mysql.taobao.org/monthly/2016/11/04/" target="_blank" rel="noopener">MySQL · 引擎特性 · Column Compression浅析</a><br>2016/11/05  <a href="http://mysql.taobao.org/monthly/2016/11/05/" target="_blank" rel="noopener">MySQL · 引擎介绍 · Sphinx源码剖析（一）</a><br>2016/11/06  <a href="http://mysql.taobao.org/monthly/2016/11/06/" target="_blank" rel="noopener">PgSQL · 特性分析 · PostgreSQL 9.6 如何把你的机器掏空</a><br>2016/11/07  <a href="http://mysql.taobao.org/monthly/2016/11/07/" target="_blank" rel="noopener">PgSQL · 特性分析 · PostgreSQL 9.6 让多核并行起来</a><br>2016/11/08  <a href="http://mysql.taobao.org/monthly/2016/11/08/" target="_blank" rel="noopener">MSSQL · 最佳实战 · 巧用COLUMNS_UPDATED获取数据变更</a><br>2016/11/09  <a href="http://mysql.taobao.org/monthly/2016/11/09/" target="_blank" rel="noopener">PgSQL · GIS应用 · 物流, 动态路径规划</a><br>2016/11/10  <a href="http://mysql.taobao.org/monthly/2016/11/10/" target="_blank" rel="noopener">PgSQL · 特性分析· JIT 在数据仓库中的应用价值</a></p><h3 id="2016-10"><a href="#2016-10" class="headerlink" title="2016/10"></a>2016/10</h3><p>2016/10/01  <a href="http://mysql.taobao.org/monthly/2016/10/01/" target="_blank" rel="noopener">AliSQL · 社区动态 · 关于开源之后评论的评论</a><br>2016/10/02  <a href="http://mysql.taobao.org/monthly/2016/10/02/" target="_blank" rel="noopener">MySQL · 社区见闻 · Oracle Open World 2016 见闻</a><br>2016/10/03  <a href="http://mysql.taobao.org/monthly/2016/10/03/" target="_blank" rel="noopener">MySQL · 社区见闻 · Percona Live 2016 见闻</a><br>2016/10/04  <a href="http://mysql.taobao.org/monthly/2016/10/04/" target="_blank" rel="noopener">MySQL · 社区见闻 · MariaDB Developer Meeting 2016</a><br>2016/10/05  <a href="http://mysql.taobao.org/monthly/2016/10/05/" target="_blank" rel="noopener">MySQL · myrocks · data dictionary 分析</a><br>2016/10/06  <a href="http://mysql.taobao.org/monthly/2016/10/06/" target="_blank" rel="noopener">MySQL · 源码分析 · 无法revoke单库或单表权限</a><br>2016/10/07  <a href="http://mysql.taobao.org/monthly/2016/10/07/" target="_blank" rel="noopener">PgSQL · 代码浅析 · PostgreSQL 可靠性分析</a><br>2016/10/08  <a href="http://mysql.taobao.org/monthly/2016/10/08/" target="_blank" rel="noopener">PgSQL · 代码浅析 · PostgreSQL 9.6 聚合OP复用的优化分析</a><br>2016/10/09  <a href="http://mysql.taobao.org/monthly/2016/10/09/" target="_blank" rel="noopener">MySQL · 特性分析 · 直方图的实现与分析</a><br>2016/10/10  <a href="http://mysql.taobao.org/monthly/2016/10/10/" target="_blank" rel="noopener">SQL Server · 最佳实践 · 参数嗅探问题</a></p><h3 id="2016-09"><a href="#2016-09" class="headerlink" title="2016/09"></a>2016/09</h3><p>2016/09/01  <a href="http://mysql.taobao.org/monthly/2016/09/01/" target="_blank" rel="noopener">MySQL · 社区贡献 · AliSQL那些事儿</a><br>2016/09/02  <a href="http://mysql.taobao.org/monthly/2016/09/02/" target="_blank" rel="noopener">PetaData · 架构体系 · PetaData第二代低成本存储体系</a><br>2016/09/03  <a href="http://mysql.taobao.org/monthly/2016/09/03/" target="_blank" rel="noopener">MySQL · 社区动态 · MariaDB 10.2 前瞻</a><br>2016/09/04  <a href="http://mysql.taobao.org/monthly/2016/09/04/" target="_blank" rel="noopener">MySQL · 特性分析 · 执行计划缓存设计与实现</a><br>2016/09/05  <a href="http://mysql.taobao.org/monthly/2016/09/05/" target="_blank" rel="noopener">PgSQL · 最佳实践 · pg_rman源码浅析与使用</a><br>2016/09/06  <a href="http://mysql.taobao.org/monthly/2016/09/06/" target="_blank" rel="noopener">MySQL · 捉虫状态 · bug分析两例</a><br>2016/09/07  <a href="http://mysql.taobao.org/monthly/2016/09/07/" target="_blank" rel="noopener">PgSQL · 源码分析 · PG优化器浅析</a><br>2016/09/08  <a href="http://mysql.taobao.org/monthly/2016/09/08/" target="_blank" rel="noopener">MongoDB · 特性分析· Sharding原理与应用</a><br>2016/09/09  <a href="http://mysql.taobao.org/monthly/2016/09/09/" target="_blank" rel="noopener">PgSQL · 源码分析 · PG中的无锁算法和原子操作应用一则</a><br>2016/09/10  <a href="http://mysql.taobao.org/monthly/2016/09/10/" target="_blank" rel="noopener">SQLServer · 最佳实践 · TEMPDB的设计</a></p><h3 id="2016-08"><a href="#2016-08" class="headerlink" title="2016/08"></a>2016/08</h3><p>2016/08/01  <a href="http://mysql.taobao.org/monthly/2016/08/01/" target="_blank" rel="noopener">MySQL · 特性分析 ·MySQL 5.7新特性系列四</a><br>2016/08/02  <a href="http://mysql.taobao.org/monthly/2016/08/02/" target="_blank" rel="noopener">PgSQL · PostgreSQL 逻辑流复制技术的秘密</a><br>2016/08/03  <a href="http://mysql.taobao.org/monthly/2016/08/03/" target="_blank" rel="noopener">MySQL · 特性分析 · MyRocks简介</a><br>2016/08/04  <a href="http://mysql.taobao.org/monthly/2016/08/04/" target="_blank" rel="noopener">GPDB · 特性分析· Greenplum 备份架构</a><br>2016/08/05  <a href="http://mysql.taobao.org/monthly/2016/08/05/" target="_blank" rel="noopener">SQLServer · 最佳实践 · RDS for SQLServer 2012权限限制提升与改善</a><br>2016/08/06  <a href="http://mysql.taobao.org/monthly/2016/08/06/" target="_blank" rel="noopener">TokuDB · 引擎特性 · REPLACE 语句优化</a><br>2016/08/07  <a href="http://mysql.taobao.org/monthly/2016/08/07/" target="_blank" rel="noopener">MySQL · 专家投稿 · InnoDB物理行中null值的存储的推断与验证</a><br>2016/08/08  <a href="http://mysql.taobao.org/monthly/2016/08/08/" target="_blank" rel="noopener">PgSQL · 实战经验 · 旋转门压缩算法在PostgreSQL中的实现</a><br>2016/08/09  <a href="http://mysql.taobao.org/monthly/2016/08/09/" target="_blank" rel="noopener">MySQL · 源码分析 · Query Cache并发处理</a><br>2016/08/10  <a href="http://mysql.taobao.org/monthly/2016/08/10/" target="_blank" rel="noopener">PgSQL · 源码分析· pg_dump分析</a></p><h3 id="2016-07"><a href="#2016-07" class="headerlink" title="2016/07"></a>2016/07</h3><p>2016/07/01  <a href="http://mysql.taobao.org/monthly/2016/07/01/" target="_blank" rel="noopener">MySQL · 特性分析 ·MySQL 5.7新特性系列三</a><br>2016/07/02  <a href="http://mysql.taobao.org/monthly/2016/07/02/" target="_blank" rel="noopener">MySQL · 特性分析 · 5.7 代价模型浅析</a><br>2016/07/03  <a href="http://mysql.taobao.org/monthly/2016/07/03/" target="_blank" rel="noopener">PgSQL · 实战经验 · 分组TOP性能提升44倍</a><br>2016/07/04  <a href="http://mysql.taobao.org/monthly/2016/07/04/" target="_blank" rel="noopener">MySQL · 源码分析 · 网络通信模块浅析</a><br>2016/07/05  <a href="http://mysql.taobao.org/monthly/2016/07/05/" target="_blank" rel="noopener">MongoDB · 特性分析 · 索引原理</a><br>2016/07/06  <a href="http://mysql.taobao.org/monthly/2016/07/06/" target="_blank" rel="noopener">SQLServer · 特性分析 · XML与JSON应用比较</a><br>2016/07/07  <a href="http://mysql.taobao.org/monthly/2016/07/07/" target="_blank" rel="noopener">MySQL · 最佳实战 · 审计日志实用案例分析</a><br>2016/07/08  <a href="http://mysql.taobao.org/monthly/2016/07/08/" target="_blank" rel="noopener">MySQL · 性能优化 · 条件下推到物化表</a><br>2016/07/09  <a href="http://mysql.taobao.org/monthly/2016/07/09/" target="_blank" rel="noopener">MySQL · 源码分析 · Query Cache内部剖析</a><br>2016/07/10  <a href="http://mysql.taobao.org/monthly/2016/07/10/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 备库1206错误问题说明</a></p><h3 id="2016-06"><a href="#2016-06" class="headerlink" title="2016/06"></a>2016/06</h3><p>2016/06/01  <a href="http://mysql.taobao.org/monthly/2016/06/01/" target="_blank" rel="noopener">MySQL · 特性分析 · innodb 锁分裂继承与迁移</a><br>2016/06/02  <a href="http://mysql.taobao.org/monthly/2016/06/02/" target="_blank" rel="noopener">MySQL · 特性分析 ·MySQL 5.7新特性系列二</a><br>2016/06/03  <a href="http://mysql.taobao.org/monthly/2016/06/03/" target="_blank" rel="noopener">PgSQL · 实战经验 · 如何预测Freeze IO风暴</a><br>2016/06/04  <a href="http://mysql.taobao.org/monthly/2016/06/04/" target="_blank" rel="noopener">GPDB · 特性分析· Filespace和Tablespace</a><br>2016/06/05  <a href="http://mysql.taobao.org/monthly/2016/06/05/" target="_blank" rel="noopener">MariaDB · 新特性 · 窗口函数</a><br>2016/06/06  <a href="http://mysql.taobao.org/monthly/2016/06/06/" target="_blank" rel="noopener">MySQL · TokuDB  · checkpoint过程</a><br>2016/06/07  <a href="http://mysql.taobao.org/monthly/2016/06/07/" target="_blank" rel="noopener">MySQL · 特性分析 · 内部临时表</a><br>2016/06/08  <a href="http://mysql.taobao.org/monthly/2016/06/08/" target="_blank" rel="noopener">MySQL · 最佳实践 · 空间优化</a><br>2016/06/09  <a href="http://mysql.taobao.org/monthly/2016/06/09/" target="_blank" rel="noopener">SQLServer · 最佳实践 · 数据库实现大容量插入的几种方式</a><br>2016/06/10  <a href="http://mysql.taobao.org/monthly/2016/06/10/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)</a></p><h3 id="2016-05"><a href="#2016-05" class="headerlink" title="2016/05"></a>2016/05</h3><p>2016/05/01  <a href="http://mysql.taobao.org/monthly/2016/05/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · 基于InnoDB的物理复制实现</a><br>2016/05/02  <a href="http://mysql.taobao.org/monthly/2016/05/02/" target="_blank" rel="noopener">MySQL · 特性分析 · MySQL 5.7新特性系列一</a><br>2016/05/03  <a href="http://mysql.taobao.org/monthly/2016/05/03/" target="_blank" rel="noopener">PostgreSQL · 特性分析 · 逻辑结构和权限体系</a><br>2016/05/04  <a href="http://mysql.taobao.org/monthly/2016/05/04/" target="_blank" rel="noopener">MySQL · 特性分析 · innodb buffer pool相关特性</a><br>2016/05/05  <a href="http://mysql.taobao.org/monthly/2016/05/05/" target="_blank" rel="noopener">PG&amp;GP · 特性分析 · 外部数据导入接口实现分析</a><br>2016/05/06  <a href="http://mysql.taobao.org/monthly/2016/05/06/" target="_blank" rel="noopener">SQLServer · 最佳实践 · 透明数据加密在SQLServer的应用</a><br>2016/05/07  <a href="http://mysql.taobao.org/monthly/2016/05/07/" target="_blank" rel="noopener">MySQL · TokuDB · 日志子系统和崩溃恢复过程</a><br>2016/05/08  <a href="http://mysql.taobao.org/monthly/2016/05/08/" target="_blank" rel="noopener">MongoDB · 特性分析 · Sharded cluster架构原理</a><br>2016/05/09  <a href="http://mysql.taobao.org/monthly/2016/05/09/" target="_blank" rel="noopener">PostgreSQL · 特性分析 · 统计信息计算方法</a><br>2016/05/10  <a href="http://mysql.taobao.org/monthly/2016/05/10/" target="_blank" rel="noopener">MySQL · 捉虫动态 · left-join多表导致crash</a></p><h3 id="2016-04"><a href="#2016-04" class="headerlink" title="2016/04"></a>2016/04</h3><p>2016/04/01  <a href="http://mysql.taobao.org/monthly/2016/04/01/" target="_blank" rel="noopener">MySQL · 参数故事 · innodb_additional_mem_pool_size</a><br>2016/04/02  <a href="http://mysql.taobao.org/monthly/2016/04/02/" target="_blank" rel="noopener">GPDB · 特性分析 · Segment事务一致性与异常处理</a><br>2016/04/03  <a href="http://mysql.taobao.org/monthly/2016/04/03/" target="_blank" rel="noopener">GPDB · 特性分析 · Segment 修复指南</a><br>2016/04/04  <a href="http://mysql.taobao.org/monthly/2016/04/04/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 并行复制外键约束问题二</a><br>2016/04/05  <a href="http://mysql.taobao.org/monthly/2016/04/05/" target="_blank" rel="noopener">PgSQL · 性能优化 · 如何潇洒的处理每天上百TB的数据增量</a><br>2016/04/06  <a href="http://mysql.taobao.org/monthly/2016/04/06/" target="_blank" rel="noopener">Memcached · 最佳实践 · 热点 Key 问题解决方案</a><br>2016/04/07  <a href="http://mysql.taobao.org/monthly/2016/04/07/" target="_blank" rel="noopener">MongoDB · 最佳实践 · 短连接Auth性能优化</a><br>2016/04/08  <a href="http://mysql.taobao.org/monthly/2016/04/08/" target="_blank" rel="noopener">MySQL · 最佳实践 · RDS 只读实例延迟分析</a><br>2016/04/09  <a href="http://mysql.taobao.org/monthly/2016/04/09/" target="_blank" rel="noopener">MySQL · TokuDB · TokuDB索引结构–Fractal Tree</a><br>2016/04/10  <a href="http://mysql.taobao.org/monthly/2016/04/10/" target="_blank" rel="noopener">MySQL · TokuDB · Savepoint漫谈</a></p><h3 id="2016-03"><a href="#2016-03" class="headerlink" title="2016/03"></a>2016/03</h3><p>2016/03/01  <a href="http://mysql.taobao.org/monthly/2016/03/01/" target="_blank" rel="noopener">MySQL · TokuDB · 事务子系统和 MVCC 实现</a><br>2016/03/02  <a href="http://mysql.taobao.org/monthly/2016/03/02/" target="_blank" rel="noopener">MongoDB · 特性分析 · MMAPv1 存储引擎原理</a><br>2016/03/03  <a href="http://mysql.taobao.org/monthly/2016/03/03/" target="_blank" rel="noopener">PgSQL · 源码分析 · 优化器逻辑推理</a><br>2016/03/04  <a href="http://mysql.taobao.org/monthly/2016/03/04/" target="_blank" rel="noopener">SQLServer · BUG分析 · Agent 链接泄露分析</a><br>2016/03/05  <a href="http://mysql.taobao.org/monthly/2016/03/05/" target="_blank" rel="noopener">Redis · 特性分析 · AOF Rewrite 分析</a><br>2016/03/06  <a href="http://mysql.taobao.org/monthly/2016/03/06/" target="_blank" rel="noopener">MySQL · BUG分析 · Rename table 死锁分析</a><br>2016/03/07  <a href="http://mysql.taobao.org/monthly/2016/03/07/" target="_blank" rel="noopener">MySQL · 物理备份 · Percona XtraBackup 备份原理</a><br>2016/03/08  <a href="http://mysql.taobao.org/monthly/2016/03/08/" target="_blank" rel="noopener">GPDB · 特性分析· GreenPlum FTS 机制</a><br>2016/03/09  <a href="http://mysql.taobao.org/monthly/2016/03/09/" target="_blank" rel="noopener">MySQL · 答疑解惑 · 备库Seconds_Behind_Master计算</a><br>2016/03/10  <a href="http://mysql.taobao.org/monthly/2016/03/10/" target="_blank" rel="noopener">MySQL · 答疑解惑 · MySQL 锁问题最佳实践</a></p><h3 id="2016-02"><a href="#2016-02" class="headerlink" title="2016/02"></a>2016/02</h3><p>2016/02/01  <a href="http://mysql.taobao.org/monthly/2016/02/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 文件系统之文件物理结构</a><br>2016/02/02  <a href="http://mysql.taobao.org/monthly/2016/02/02/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 文件系统之IO系统和内存管理</a><br>2016/02/03  <a href="http://mysql.taobao.org/monthly/2016/02/03/" target="_blank" rel="noopener">MySQL · 特性分析 · InnoDB transaction history</a><br>2016/02/04  <a href="http://mysql.taobao.org/monthly/2016/02/04/" target="_blank" rel="noopener">PgSQL · 会议见闻 · PgConf.Russia 2016 大会总结</a><br>2016/02/05  <a href="http://mysql.taobao.org/monthly/2016/02/05/" target="_blank" rel="noopener">PgSQL · 答疑解惑 · PostgreSQL 9.6 并行查询实现分析</a><br>2016/02/06  <a href="http://mysql.taobao.org/monthly/2016/02/06/" target="_blank" rel="noopener">MySQL · TokuDB · TokuDB之黑科技工具</a><br>2016/02/07  <a href="http://mysql.taobao.org/monthly/2016/02/07/" target="_blank" rel="noopener">PgSQL · 性能优化 · PostgreSQL TPC-C极限优化玩法</a><br>2016/02/08  <a href="http://mysql.taobao.org/monthly/2016/02/08/" target="_blank" rel="noopener">MariaDB · 版本特性 · MariaDB 的 GTID 介绍</a><br>2016/02/09  <a href="http://mysql.taobao.org/monthly/2016/02/09/" target="_blank" rel="noopener">MySQL · 特性分析 · 线程池</a><br>2016/02/10  <a href="http://mysql.taobao.org/monthly/2016/02/10/" target="_blank" rel="noopener">MySQL · 答疑解惑 · mysqldump tips 两则</a></p><h3 id="2016-01"><a href="#2016-01" class="headerlink" title="2016/01"></a>2016/01</h3><p>2016/01/01  <a href="http://mysql.taobao.org/monthly/2016/01/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 事务锁系统简介</a><br>2016/01/02  <a href="http://mysql.taobao.org/monthly/2016/01/02/" target="_blank" rel="noopener">GPDB   · 特性分析· GreenPlum Primary/Mirror 同步机制</a><br>2016/01/03  <a href="http://mysql.taobao.org/monthly/2016/01/03/" target="_blank" rel="noopener">MySQL · 专家投稿 · MySQL5.7 的 JSON 实现</a><br>2016/01/04  <a href="http://mysql.taobao.org/monthly/2016/01/04/" target="_blank" rel="noopener">MySQL · 特性分析 · 优化器 MRR &amp; BKA</a><br>2016/01/05  <a href="http://mysql.taobao.org/monthly/2016/01/05/" target="_blank" rel="noopener">MySQL · 答疑解惑 · 物理备份死锁分析</a><br>2016/01/06  <a href="http://mysql.taobao.org/monthly/2016/01/06/" target="_blank" rel="noopener">MySQL · TokuDB · Cachetable 的工作线程和线程池</a><br>2016/01/07  <a href="http://mysql.taobao.org/monthly/2016/01/07/" target="_blank" rel="noopener">MySQL · 特性分析 · drop table的优化</a><br>2016/01/08  <a href="http://mysql.taobao.org/monthly/2016/01/08/" target="_blank" rel="noopener">MySQL · 答疑解惑 · GTID不一致分析</a><br>2016/01/09  <a href="http://mysql.taobao.org/monthly/2016/01/09/" target="_blank" rel="noopener">PgSQL · 特性分析 · Plan Hint</a><br>2016/01/10  <a href="http://mysql.taobao.org/monthly/2016/01/10/" target="_blank" rel="noopener">MariaDB · 社区动态 · MariaDB on Power8 (下)</a></p><h3 id="2015-12"><a href="#2015-12" class="headerlink" title="2015/12"></a>2015/12</h3><p>2015/12/01  <a href="http://mysql.taobao.org/monthly/2015/12/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 事务子系统介绍</a><br>2015/12/02  <a href="http://mysql.taobao.org/monthly/2015/12/02/" target="_blank" rel="noopener">PgSQL · 特性介绍 · 全文搜索介绍</a><br>2015/12/03  <a href="http://mysql.taobao.org/monthly/2015/12/03/" target="_blank" rel="noopener">MongoDB · 捉虫动态 · Kill Hang问题排查记录</a><br>2015/12/04  <a href="http://mysql.taobao.org/monthly/2015/12/04/" target="_blank" rel="noopener">MySQL · 参数优化 ·RDS MySQL参数调优最佳实践</a><br>2015/12/05  <a href="http://mysql.taobao.org/monthly/2015/12/05/" target="_blank" rel="noopener">PgSQL · 特性分析 · 备库激活过程分析</a><br>2015/12/06  <a href="http://mysql.taobao.org/monthly/2015/12/06/" target="_blank" rel="noopener">MySQL · TokuDB · 让Hot Backup更完美</a><br>2015/12/07  <a href="http://mysql.taobao.org/monthly/2015/12/07/" target="_blank" rel="noopener">PgSQL · 答疑解惑 · 表膨胀</a><br>2015/12/08  <a href="http://mysql.taobao.org/monthly/2015/12/08/" target="_blank" rel="noopener">MySQL · 特性分析 · Index Condition Pushdown (ICP)</a><br>2015/12/09  <a href="http://mysql.taobao.org/monthly/2015/12/09/" target="_blank" rel="noopener">MariaDB · 社区动态 · MariaDB on Power8</a><br>2015/12/10  <a href="http://mysql.taobao.org/monthly/2015/12/10/" target="_blank" rel="noopener">MySQL · 特性分析 · 企业版特性一览</a></p><h3 id="2015-11"><a href="#2015-11" class="headerlink" title="2015/11"></a>2015/11</h3><p>2015/11/01  <a href="http://mysql.taobao.org/monthly/2015/11/01/" target="_blank" rel="noopener">MySQL · 社区见闻 · OOW 2015 总结 MySQL 篇</a><br>2015/11/02  <a href="http://mysql.taobao.org/monthly/2015/11/02/" target="_blank" rel="noopener">MySQL · 特性分析 · Statement Digest</a><br>2015/11/03  <a href="http://mysql.taobao.org/monthly/2015/11/03/" target="_blank" rel="noopener">PgSQL · 答疑解惑 · PostgreSQL 用户组权限管理</a><br>2015/11/04  <a href="http://mysql.taobao.org/monthly/2015/11/04/" target="_blank" rel="noopener">MySQL · 特性分析 · MDL 实现分析</a><br>2015/11/05  <a href="http://mysql.taobao.org/monthly/2015/11/05/" target="_blank" rel="noopener">PgSQL · 特性分析 · full page write 机制</a><br>2015/11/06  <a href="http://mysql.taobao.org/monthly/2015/11/06/" target="_blank" rel="noopener">MySQL · 捉虫动态 · MySQL 外键异常分析</a><br>2015/11/07  <a href="http://mysql.taobao.org/monthly/2015/11/07/" target="_blank" rel="noopener">MySQL · 答疑解惑 · MySQL 优化器 range 的代价计算</a><br>2015/11/08  <a href="http://mysql.taobao.org/monthly/2015/11/08/" target="_blank" rel="noopener">MySQL · 捉虫动态 · ORDER/GROUP BY 导致 mysqld crash</a><br>2015/11/09  <a href="http://mysql.taobao.org/monthly/2015/11/09/" target="_blank" rel="noopener">MySQL · TokuDB · TokuDB 中的行锁</a><br>2015/11/10  <a href="http://mysql.taobao.org/monthly/2015/11/10/" target="_blank" rel="noopener">MySQL · 捉虫动态 · order by limit 造成优化器选择索引错误</a></p><h3 id="2015-10"><a href="#2015-10" class="headerlink" title="2015/10"></a>2015/10</h3><p>2015/10/01  <a href="http://mysql.taobao.org/monthly/2015/10/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 全文索引简介</a><br>2015/10/02  <a href="http://mysql.taobao.org/monthly/2015/10/02/" target="_blank" rel="noopener">MySQL · 特性分析 · 跟踪Metadata lock</a><br>2015/10/03  <a href="http://mysql.taobao.org/monthly/2015/10/03/" target="_blank" rel="noopener">MySQL · 答疑解惑 · 索引过滤性太差引起CPU飙高分析</a><br>2015/10/04  <a href="http://mysql.taobao.org/monthly/2015/10/04/" target="_blank" rel="noopener">PgSQL · 特性分析 · PG主备流复制机制</a><br>2015/10/05  <a href="http://mysql.taobao.org/monthly/2015/10/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · start slave crash 诊断分析</a><br>2015/10/06  <a href="http://mysql.taobao.org/monthly/2015/10/06/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 删除索引导致表无法打开</a><br>2015/10/07  <a href="http://mysql.taobao.org/monthly/2015/10/07/" target="_blank" rel="noopener">PgSQL · 特性分析 · PostgreSQL Aurora方案与DEMO</a><br>2015/10/08  <a href="http://mysql.taobao.org/monthly/2015/10/08/" target="_blank" rel="noopener">TokuDB · 捉虫动态 · CREATE DATABASE 导致crash问题</a><br>2015/10/09  <a href="http://mysql.taobao.org/monthly/2015/10/09/" target="_blank" rel="noopener">PgSQL · 特性分析 · pg_receivexlog工具解析</a><br>2015/10/10  <a href="http://mysql.taobao.org/monthly/2015/10/10/" target="_blank" rel="noopener">MySQL · 特性分析 · MySQL权限存储与管理</a></p><h3 id="2015-09"><a href="#2015-09" class="headerlink" title="2015/09"></a>2015/09</h3><p>2015/09/01  <a href="http://mysql.taobao.org/monthly/2015/09/01/" target="_blank" rel="noopener">MySQL · 引擎特性 ·  InnoDB Adaptive hash index介绍</a><br>2015/09/02  <a href="http://mysql.taobao.org/monthly/2015/09/02/" target="_blank" rel="noopener">PgSQL · 特性分析 ·  clog异步提交一致性、原子操作与fsync</a><br>2015/09/03  <a href="http://mysql.taobao.org/monthly/2015/09/03/" target="_blank" rel="noopener">MySQL · 捉虫动态 · BUG 几例</a><br>2015/09/04  <a href="http://mysql.taobao.org/monthly/2015/09/04/" target="_blank" rel="noopener">PgSQL · 答疑解惑 · 诡异的函数返回值</a><br>2015/09/05  <a href="http://mysql.taobao.org/monthly/2015/09/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 建表过程中crash造成重建表失败</a><br>2015/09/06  <a href="http://mysql.taobao.org/monthly/2015/09/06/" target="_blank" rel="noopener">PgSQL · 特性分析 · 谈谈checkpoint的调度</a><br>2015/09/07  <a href="http://mysql.taobao.org/monthly/2015/09/07/" target="_blank" rel="noopener">MySQL · 特性分析 · 5.6 并行复制恢复实现</a><br>2015/09/08  <a href="http://mysql.taobao.org/monthly/2015/09/08/" target="_blank" rel="noopener">MySQL · 备库优化 ·  relay fetch 备库优化</a><br>2015/09/09  <a href="http://mysql.taobao.org/monthly/2015/09/09/" target="_blank" rel="noopener">MySQL · 特性分析 · 5.6并行复制事件分发机制</a><br>2015/09/10  <a href="http://mysql.taobao.org/monthly/2015/09/10/" target="_blank" rel="noopener">MySQL · TokuDB · 文件目录谈</a></p><h3 id="2015-08"><a href="#2015-08" class="headerlink" title="2015/08"></a>2015/08</h3><p>2015/08/01  <a href="http://mysql.taobao.org/monthly/2015/08/01/" target="_blank" rel="noopener">MySQL · 社区动态 · InnoDB Page Compression</a><br>2015/08/02  <a href="http://mysql.taobao.org/monthly/2015/08/02/" target="_blank" rel="noopener">PgSQL · 答疑解惑 · RDS中的PostgreSQL备库延迟原因分析</a><br>2015/08/03  <a href="http://mysql.taobao.org/monthly/2015/08/03/" target="_blank" rel="noopener">MySQL · 社区动态 · MySQL5.6.26 Release Note解读</a><br>2015/08/04  <a href="http://mysql.taobao.org/monthly/2015/08/04/" target="_blank" rel="noopener">PgSQL · 捉虫动态 · 执行大SQL语句提示无效的内存申请大小</a><br>2015/08/05  <a href="http://mysql.taobao.org/monthly/2015/08/05/" target="_blank" rel="noopener">MySQL · 社区动态 · MariaDB InnoDB表空间碎片整理</a><br>2015/08/06  <a href="http://mysql.taobao.org/monthly/2015/08/06/" target="_blank" rel="noopener">PgSQL · 答疑解惑 · 归档进程cp命令的core文件追查</a><br>2015/08/07  <a href="http://mysql.taobao.org/monthly/2015/08/07/" target="_blank" rel="noopener">MySQL · 答疑解惑 · open file limits</a><br>2015/08/08  <a href="http://mysql.taobao.org/monthly/2015/08/08/" target="_blank" rel="noopener">MySQL · TokuDB · 疯狂的 filenum++</a><br>2015/08/09  <a href="http://mysql.taobao.org/monthly/2015/08/09/" target="_blank" rel="noopener">MySQL · 功能分析 · 5.6 并行复制实现分析</a><br>2015/08/10  <a href="http://mysql.taobao.org/monthly/2015/08/10/" target="_blank" rel="noopener">MySQL · 功能分析 · MySQL表定义缓存</a></p><h3 id="2015-07"><a href="#2015-07" class="headerlink" title="2015/07"></a>2015/07</h3><p>2015/07/01  <a href="http://mysql.taobao.org/monthly/2015/07/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · Innodb change buffer介绍</a><br>2015/07/02  <a href="http://mysql.taobao.org/monthly/2015/07/02/" target="_blank" rel="noopener">MySQL · TokuDB · TokuDB Checkpoint机制</a><br>2015/07/03  <a href="http://mysql.taobao.org/monthly/2015/07/03/" target="_blank" rel="noopener">PgSQL · 特性分析 · 时间线解析</a><br>2015/07/04  <a href="http://mysql.taobao.org/monthly/2015/07/04/" target="_blank" rel="noopener">PgSQL · 功能分析 · PostGIS 在 O2O应用中的优势</a><br>2015/07/05  <a href="http://mysql.taobao.org/monthly/2015/07/05/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB index lock前世今生</a><br>2015/07/06  <a href="http://mysql.taobao.org/monthly/2015/07/06/" target="_blank" rel="noopener">MySQL · 社区动态 · MySQL内存分配支持NUMA</a><br>2015/07/07  <a href="http://mysql.taobao.org/monthly/2015/07/07/" target="_blank" rel="noopener">MySQL · 答疑解惑 · 外键删除bug分析</a><br>2015/07/08  <a href="http://mysql.taobao.org/monthly/2015/07/08/" target="_blank" rel="noopener">MySQL · 引擎特性 · MySQL logical read-ahead</a><br>2015/07/09  <a href="http://mysql.taobao.org/monthly/2015/07/09/" target="_blank" rel="noopener">MySQL · 功能介绍 · binlog拉取速度的控制</a><br>2015/07/10  <a href="http://mysql.taobao.org/monthly/2015/07/10/" target="_blank" rel="noopener">MySQL · 答疑解惑 · 浮点型的显示问题</a></p><h3 id="2015-06"><a href="#2015-06" class="headerlink" title="2015/06"></a>2015/06</h3><p>2015/06/01  <a href="http://mysql.taobao.org/monthly/2015/06/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB 崩溃恢复过程</a><br>2015/06/02  <a href="http://mysql.taobao.org/monthly/2015/06/02/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 唯一键约束失效</a><br>2015/06/03  <a href="http://mysql.taobao.org/monthly/2015/06/03/" target="_blank" rel="noopener">MySQL · 捉虫动态 · ALTER IGNORE TABLE导致主备不一致</a><br>2015/06/04  <a href="http://mysql.taobao.org/monthly/2015/06/04/" target="_blank" rel="noopener">MySQL · 答疑解惑 · MySQL Sort 分页</a><br>2015/06/05  <a href="http://mysql.taobao.org/monthly/2015/06/05/" target="_blank" rel="noopener">MySQL · 答疑解惑 · binlog event 中的 error code</a><br>2015/06/06  <a href="http://mysql.taobao.org/monthly/2015/06/06/" target="_blank" rel="noopener">PgSQL · 功能分析 · Listen/Notify 功能</a><br>2015/06/07  <a href="http://mysql.taobao.org/monthly/2015/06/07/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 任性的 normal shutdown</a><br>2015/06/08  <a href="http://mysql.taobao.org/monthly/2015/06/08/" target="_blank" rel="noopener">PgSQL · 追根究底 · WAL日志空间的意外增长</a><br>2015/06/09  <a href="http://mysql.taobao.org/monthly/2015/06/09/" target="_blank" rel="noopener">MySQL · 社区动态 · MariaDB Role 体系</a><br>2015/06/10  <a href="http://mysql.taobao.org/monthly/2015/06/10/" target="_blank" rel="noopener">MySQL · TokuDB · TokuDB数据文件大小计算</a></p><h3 id="2015-05"><a href="#2015-05" class="headerlink" title="2015/05"></a>2015/05</h3><p>2015/05/01  <a href="http://mysql.taobao.org/monthly/2015/05/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB redo log漫游</a><br>2015/05/02  <a href="http://mysql.taobao.org/monthly/2015/05/02/" target="_blank" rel="noopener">MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析</a><br>2015/05/03  <a href="http://mysql.taobao.org/monthly/2015/05/03/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 5.6 与 5.5 InnoDB 不兼容导致 crash</a><br>2015/05/04  <a href="http://mysql.taobao.org/monthly/2015/05/04/" target="_blank" rel="noopener">MySQL · 答疑解惑 · InnoDB 预读 VS Oracle 多块读</a><br>2015/05/05  <a href="http://mysql.taobao.org/monthly/2015/05/05/" target="_blank" rel="noopener">PgSQL · 社区动态 · 9.5 新功能BRIN索引</a><br>2015/05/06  <a href="http://mysql.taobao.org/monthly/2015/05/06/" target="_blank" rel="noopener">MySQL · 捉虫动态 · MySQL DDL BUG</a><br>2015/05/07  <a href="http://mysql.taobao.org/monthly/2015/05/07/" target="_blank" rel="noopener">MySQL · 答疑解惑 · set names 都做了什么</a><br>2015/05/08  <a href="http://mysql.taobao.org/monthly/2015/05/08/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 临时表操作导致主备不一致</a><br>2015/05/09  <a href="http://mysql.taobao.org/monthly/2015/05/09/" target="_blank" rel="noopener">TokuDB · 引擎特性 · zstd压缩算法</a><br>2015/05/10  <a href="http://mysql.taobao.org/monthly/2015/05/10/" target="_blank" rel="noopener">MySQL · 答疑解惑 · binlog 位点刷新策略</a></p><h3 id="2015-04"><a href="#2015-04" class="headerlink" title="2015/04"></a>2015/04</h3><p>2015/04/01  <a href="http://mysql.taobao.org/monthly/2015/04/01/" target="_blank" rel="noopener">MySQL · 引擎特性 · InnoDB undo log 漫游</a><br>2015/04/02  <a href="http://mysql.taobao.org/monthly/2015/04/02/" target="_blank" rel="noopener">TokuDB · 产品新闻 · RDS TokuDB小手册</a><br>2015/04/03  <a href="http://mysql.taobao.org/monthly/2015/04/03/" target="_blank" rel="noopener">TokuDB · 特性分析 · 行锁(row-lock)与区间锁(range-lock)</a><br>2015/04/04  <a href="http://mysql.taobao.org/monthly/2015/04/04/" target="_blank" rel="noopener">PgSQL · 社区动态 · 说一说PgSQL 9.4.1中的那些安全补丁</a><br>2015/04/05  <a href="http://mysql.taobao.org/monthly/2015/04/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 连接断开导致XA事务丢失</a><br>2015/04/06  <a href="http://mysql.taobao.org/monthly/2015/04/06/" target="_blank" rel="noopener">MySQL · 捉虫动态 · GTID下slave_net_timeout值太小问题</a><br>2015/04/07  <a href="http://mysql.taobao.org/monthly/2015/04/07/" target="_blank" rel="noopener">MySQL · 捉虫动态 · Relay log 中 GTID group 完整性检测</a><br>2015/04/08  <a href="http://mysql.taobao.org/monthly/2015/04/08/" target="_blank" rel="noopener">MySQL · 答疑释惑 · UPDATE交换列单表和多表的区别</a><br>2015/04/09  <a href="http://mysql.taobao.org/monthly/2015/04/09/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 删被引用索引导致crash</a><br>2015/04/10  <a href="http://mysql.taobao.org/monthly/2015/04/10/" target="_blank" rel="noopener">MySQL · 答疑释惑 · GTID下auto_position=0时数据不一致</a></p><h3 id="2015-03"><a href="#2015-03" class="headerlink" title="2015/03"></a>2015/03</h3><p>2015/03/01  <a href="http://mysql.taobao.org/monthly/2015/03/01/" target="_blank" rel="noopener">MySQL · 答疑释惑· 并发Replace into导致的死锁分析</a><br>2015/03/02  <a href="http://mysql.taobao.org/monthly/2015/03/02/" target="_blank" rel="noopener">MySQL · 性能优化· 5.7.6 InnoDB page flush 优化</a><br>2015/03/03  <a href="http://mysql.taobao.org/monthly/2015/03/03/" target="_blank" rel="noopener">MySQL · 捉虫动态· pid file丢失问题分析</a><br>2015/03/04  <a href="http://mysql.taobao.org/monthly/2015/03/04/" target="_blank" rel="noopener">MySQL · 答疑释惑· using filesort VS using temporary</a><br>2015/03/05  <a href="http://mysql.taobao.org/monthly/2015/03/05/" target="_blank" rel="noopener">MySQL · 优化限制· MySQL index_condition_pushdown</a><br>2015/03/06  <a href="http://mysql.taobao.org/monthly/2015/03/06/" target="_blank" rel="noopener">MySQL · 捉虫动态·DROP DATABASE外键约束的GTID BUG</a><br>2015/03/07  <a href="http://mysql.taobao.org/monthly/2015/03/07/" target="_blank" rel="noopener">MySQL · 答疑释惑· lower_case_table_names 使用问题</a><br>2015/03/08  <a href="http://mysql.taobao.org/monthly/2015/03/08/" target="_blank" rel="noopener">PgSQL · 特性分析· Logical Decoding探索</a><br>2015/03/09  <a href="http://mysql.taobao.org/monthly/2015/03/09/" target="_blank" rel="noopener">PgSQL · 特性分析· jsonb类型解析</a><br>2015/03/10  <a href="http://mysql.taobao.org/monthly/2015/03/10/" target="_blank" rel="noopener">TokuDB ·引擎机制· TokuDB线程池</a></p><h3 id="2015-02"><a href="#2015-02" class="headerlink" title="2015/02"></a>2015/02</h3><p>2015/02/01  <a href="http://mysql.taobao.org/monthly/2015/02/01/" target="_blank" rel="noopener">MySQL · 性能优化· InnoDB buffer pool flush策略漫谈</a><br>2015/02/02  <a href="http://mysql.taobao.org/monthly/2015/02/02/" target="_blank" rel="noopener">MySQL · 社区动态· 5.6.23 InnoDB相关Bugfix</a><br>2015/02/03  <a href="http://mysql.taobao.org/monthly/2015/02/03/" target="_blank" rel="noopener">PgSQL · 特性分析· Replication Slot</a><br>2015/02/04  <a href="http://mysql.taobao.org/monthly/2015/02/04/" target="_blank" rel="noopener">PgSQL · 特性分析· pg_prewarm</a><br>2015/02/05  <a href="http://mysql.taobao.org/monthly/2015/02/05/" target="_blank" rel="noopener">MySQL · 答疑释惑· InnoDB丢失自增值</a><br>2015/02/06  <a href="http://mysql.taobao.org/monthly/2015/02/06/" target="_blank" rel="noopener">MySQL · 答疑释惑· 5.5 和 5.6 时间类型兼容问题</a><br>2015/02/07  <a href="http://mysql.taobao.org/monthly/2015/02/07/" target="_blank" rel="noopener">MySQL · 捉虫动态· 变量修改导致binlog错误</a><br>2015/02/08  <a href="http://mysql.taobao.org/monthly/2015/02/08/" target="_blank" rel="noopener">MariaDB · 特性分析· 表/表空间加密</a><br>2015/02/09  <a href="http://mysql.taobao.org/monthly/2015/02/09/" target="_blank" rel="noopener">MariaDB · 特性分析· Per-query variables</a><br>2015/02/10  <a href="http://mysql.taobao.org/monthly/2015/02/10/" target="_blank" rel="noopener">TokuDB · 特性分析· 日志详解</a></p><h3 id="2015-01"><a href="#2015-01" class="headerlink" title="2015/01"></a>2015/01</h3><p>2015/01/01  <a href="http://mysql.taobao.org/monthly/2015/01/01/" target="_blank" rel="noopener">MySQL · 性能优化· Group Commit优化</a><br>2015/01/02  <a href="http://mysql.taobao.org/monthly/2015/01/02/" target="_blank" rel="noopener">MySQL · 新增特性· DDL fast fail</a><br>2015/01/03  <a href="http://mysql.taobao.org/monthly/2015/01/03/" target="_blank" rel="noopener">MySQL · 性能优化· 启用GTID场景的性能问题及优化</a><br>2015/01/04  <a href="http://mysql.taobao.org/monthly/2015/01/04/" target="_blank" rel="noopener">MySQL · 捉虫动态· InnoDB自增列重复值问题</a><br>2015/01/05  <a href="http://mysql.taobao.org/monthly/2015/01/05/" target="_blank" rel="noopener">MySQL · 优化改进· 复制性能改进过程</a><br>2015/01/06  <a href="http://mysql.taobao.org/monthly/2015/01/06/" target="_blank" rel="noopener">MySQL · 谈古论今· key分区算法演变分析</a><br>2015/01/07  <a href="http://mysql.taobao.org/monthly/2015/01/07/" target="_blank" rel="noopener">MySQL · 捉虫动态· mysql client crash一例</a><br>2015/01/08  <a href="http://mysql.taobao.org/monthly/2015/01/08/" target="_blank" rel="noopener">MySQL · 捉虫动态· 设置 gtid_purged 破坏AUTO_POSITION复制协议</a><br>2015/01/09  <a href="http://mysql.taobao.org/monthly/2015/01/09/" target="_blank" rel="noopener">MySQL · 捉虫动态· replicate filter 和 GTID 一起使用的问题</a><br>2015/01/10  <a href="http://mysql.taobao.org/monthly/2015/01/10/" target="_blank" rel="noopener">TokuDB·特性分析· Optimize Table</a></p><h3 id="2014-12"><a href="#2014-12" class="headerlink" title="2014/12"></a>2014/12</h3><p>2014/12/01  <a href="http://mysql.taobao.org/monthly/2014/12/01/" target="_blank" rel="noopener">MySQL · 性能优化 · 5.7 Innodb事务系统</a><br>2014/12/02  <a href="http://mysql.taobao.org/monthly/2014/12/02/" target="_blank" rel="noopener">MySQL · 踩过的坑 · 5.6 GTID 和存储引擎那会事</a><br>2014/12/03  <a href="http://mysql.taobao.org/monthly/2014/12/03/" target="_blank" rel="noopener">MySQL · 性能优化 · thread pool 原理分析</a><br>2014/12/04  <a href="http://mysql.taobao.org/monthly/2014/12/04/" target="_blank" rel="noopener">MySQL · 性能优化 · 并行复制外建约束问题</a><br>2014/12/05  <a href="http://mysql.taobao.org/monthly/2014/12/05/" target="_blank" rel="noopener">MySQL · 答疑释惑 · binlog event有序性</a><br>2014/12/06  <a href="http://mysql.taobao.org/monthly/2014/12/06/" target="_blank" rel="noopener">MySQL · 答疑释惑 · server_id为0的Rotate</a><br>2014/12/07  <a href="http://mysql.taobao.org/monthly/2014/12/07/" target="_blank" rel="noopener">MySQL · 性能优化 · Bulk Load for CREATE INDEX</a><br>2014/12/08  <a href="http://mysql.taobao.org/monthly/2014/12/08/" target="_blank" rel="noopener">MySQL · 捉虫动态·Opened tables block read only</a><br>2014/12/09  <a href="http://mysql.taobao.org/monthly/2014/12/09/" target="_blank" rel="noopener">MySQL·　优化改进· GTID启动优化</a><br>2014/12/10  <a href="http://mysql.taobao.org/monthly/2014/12/10/" target="_blank" rel="noopener">TokuDB · TokuDB · Binary Log Group Commit with TokuDB</a></p><h3 id="2014-11"><a href="#2014-11" class="headerlink" title="2014/11"></a>2014/11</h3><p>2014/11/01  <a href="http://mysql.taobao.org/monthly/2014/11/01/" target="_blank" rel="noopener">MySQL · 捉虫动态 · OPTIMIZE 不存在的表</a><br>2014/11/02  <a href="http://mysql.taobao.org/monthly/2014/11/02/" target="_blank" rel="noopener">MySQL · 捉虫动态 · SIGHUP 导致 binlog 写错</a><br>2014/11/03  <a href="http://mysql.taobao.org/monthly/2014/11/03/" target="_blank" rel="noopener">MySQL · 5.7改进 · Recovery改进</a><br>2014/11/04  <a href="http://mysql.taobao.org/monthly/2014/11/04/" target="_blank" rel="noopener">MySQL · 5.7特性 · 高可用支持</a><br>2014/11/05  <a href="http://mysql.taobao.org/monthly/2014/11/05/" target="_blank" rel="noopener">MySQL · 5.7优化 · Metadata Lock子系统的优化</a><br>2014/11/06  <a href="http://mysql.taobao.org/monthly/2014/11/06/" target="_blank" rel="noopener">MySQL · 5.7特性 · 在线Truncate undo log 表空间</a><br>2014/11/07  <a href="http://mysql.taobao.org/monthly/2014/11/07/" target="_blank" rel="noopener">MySQL · 性能优化 · hash_scan 算法的实现解析</a><br>2014/11/08  <a href="http://mysql.taobao.org/monthly/2014/11/08/" target="_blank" rel="noopener">TokuDB · 版本优化 · 7.5.0</a><br>2014/11/09  <a href="http://mysql.taobao.org/monthly/2014/11/09/" target="_blank" rel="noopener">TokuDB · 引擎特性 · FAST UPDATES</a><br>2014/11/10  <a href="http://mysql.taobao.org/monthly/2014/11/10/" target="_blank" rel="noopener">MariaDB · 性能优化 · filesort with small LIMIT optimization</a></p><h3 id="2014-10"><a href="#2014-10" class="headerlink" title="2014/10"></a>2014/10</h3><p>2014/10/01  <a href="http://mysql.taobao.org/monthly/2014/10/01/" target="_blank" rel="noopener">MySQL · 5.7重构 · Optimizer Cost Model</a><br>2014/10/02  <a href="http://mysql.taobao.org/monthly/2014/10/02/" target="_blank" rel="noopener">MySQL · 系统限制 · text字段数</a><br>2014/10/03  <a href="http://mysql.taobao.org/monthly/2014/10/03/" target="_blank" rel="noopener">MySQL · 捉虫动态 · binlog重放失败</a><br>2014/10/04  <a href="http://mysql.taobao.org/monthly/2014/10/04/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 从库OOM</a><br>2014/10/05  <a href="http://mysql.taobao.org/monthly/2014/10/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · 崩溃恢复失败</a><br>2014/10/06  <a href="http://mysql.taobao.org/monthly/2014/10/06/" target="_blank" rel="noopener">MySQL · 功能改进 · InnoDB Warmup特性</a><br>2014/10/07  <a href="http://mysql.taobao.org/monthly/2014/10/07/" target="_blank" rel="noopener">MySQL · 文件结构 · 告别frm文件</a><br>2014/10/08  <a href="http://mysql.taobao.org/monthly/2014/10/08/" target="_blank" rel="noopener">MariaDB · 新鲜特性 · ANALYZE statement 语法</a><br>2014/10/09  <a href="http://mysql.taobao.org/monthly/2014/10/09/" target="_blank" rel="noopener">TokuDB · 主备复制 · Read Free Replication</a><br>2014/10/10  <a href="http://mysql.taobao.org/monthly/2014/10/10/" target="_blank" rel="noopener">TokuDB · 引擎特性 · 压缩</a></p><h3 id="2014-09"><a href="#2014-09" class="headerlink" title="2014/09"></a>2014/09</h3><p>2014/09/01  <a href="http://mysql.taobao.org/monthly/2014/09/01/" target="_blank" rel="noopener">MySQL · 捉虫动态 · GTID 和 DELAYED</a><br>2014/09/02  <a href="http://mysql.taobao.org/monthly/2014/09/02/" target="_blank" rel="noopener">MySQL · 限制改进 · GTID和升级</a><br>2014/09/03  <a href="http://mysql.taobao.org/monthly/2014/09/03/" target="_blank" rel="noopener">MySQL · 捉虫动态 · GTID 和 binlog_checksum</a><br>2014/09/04  <a href="http://mysql.taobao.org/monthly/2014/09/04/" target="_blank" rel="noopener">MySQL · 引擎差异·create_time in status</a><br>2014/09/05  <a href="http://mysql.taobao.org/monthly/2014/09/05/" target="_blank" rel="noopener">MySQL · 参数故事 · thread_concurrency</a><br>2014/09/06  <a href="http://mysql.taobao.org/monthly/2014/09/06/" target="_blank" rel="noopener">MySQL · 捉虫动态 · auto_increment</a><br>2014/09/07  <a href="http://mysql.taobao.org/monthly/2014/09/07/" target="_blank" rel="noopener">MariaDB · 性能优化 · Extended Keys</a><br>2014/09/08  <a href="http://mysql.taobao.org/monthly/2014/09/08/" target="_blank" rel="noopener">MariaDB · 主备复制 · CREATE OR REPLACE</a><br>2014/09/09  <a href="http://mysql.taobao.org/monthly/2014/09/09/" target="_blank" rel="noopener">TokuDB · 参数故事 · 数据安全和性能</a><br>2014/09/10  <a href="http://mysql.taobao.org/monthly/2014/09/10/" target="_blank" rel="noopener">TokuDB · HA方案 · TokuDB热备</a></p><h3 id="2014-08"><a href="#2014-08" class="headerlink" title="2014/08"></a>2014/08</h3><p>2014/08/01  <a href="http://mysql.taobao.org/monthly/2014/08/01/" target="_blank" rel="noopener">MySQL · 参数故事 · timed_mutexes</a><br>2014/08/02  <a href="http://mysql.taobao.org/monthly/2014/08/02/" target="_blank" rel="noopener">MySQL · 参数故事 · innodb_flush_log_at_trx_commit</a><br>2014/08/03  <a href="http://mysql.taobao.org/monthly/2014/08/03/" target="_blank" rel="noopener">MySQL · 捉虫动态 · Count(Distinct) ERROR</a><br>2014/08/04  <a href="http://mysql.taobao.org/monthly/2014/08/04/" target="_blank" rel="noopener">MySQL · 捉虫动态 · mysqldump BUFFER OVERFLOW</a><br>2014/08/05  <a href="http://mysql.taobao.org/monthly/2014/08/05/" target="_blank" rel="noopener">MySQL · 捉虫动态 · long semaphore waits</a><br>2014/08/06  <a href="http://mysql.taobao.org/monthly/2014/08/06/" target="_blank" rel="noopener">MariaDB · 分支特性 · 支持大于16K的InnoDB Page Size</a><br>2014/08/07  <a href="http://mysql.taobao.org/monthly/2014/08/07/" target="_blank" rel="noopener">MariaDB · 分支特性 · FusionIO特性支持</a><br>2014/08/08  <a href="http://mysql.taobao.org/monthly/2014/08/08/" target="_blank" rel="noopener">TokuDB · 性能优化 · Bulk Fetch</a><br>2014/08/09  <a href="http://mysql.taobao.org/monthly/2014/08/09/" target="_blank" rel="noopener">TokuDB · 数据结构 · Fractal-Trees与LSM-Trees对比</a><br>2014/08/10  <a href="http://mysql.taobao.org/monthly/2014/08/10/" target="_blank" rel="noopener">TokuDB·社区八卦·TokuDB团队</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;阿里数据库内核月报（汇总）&lt;/p&gt;
    
    </summary>
    
    
      <category term="数据库" scheme="http://cighao.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
  </entry>
  
  <entry>
    <title>Neo4j 介绍(五)：使用 java 访问 neo4j</title>
    <link href="http://cighao.com/2019/04/24/introduction-of-neo4j-05-java-driver/"/>
    <id>http://cighao.com/2019/04/24/introduction-of-neo4j-05-java-driver/</id>
    <published>2019-04-24T14:35:22.000Z</published>
    <updated>2019-10-22T12:33:42.724Z</updated>
    
    <content type="html"><![CDATA[<p>这里主要介绍使用 java 访问 neo4j 的方法。</p><a id="more"></a><p>首先需要新建一个 maven 的项目，然后再使用这个项目访问 neo4j。</p><h2 id="1-新建一个-maven-项目"><a href="#1-新建一个-maven-项目" class="headerlink" title="1. 新建一个 maven 项目"></a>1. 新建一个 maven 项目</h2><p>参考： <a href="https://blog.csdn.net/YF_Li123/article/details/79953731" target="_blank" rel="noopener">https://blog.csdn.net/YF_Li123/article/details/79953731</a></p><p>打开 IntelliJ IDEA, Create New Project,</p><p>左侧选择 Maven, 右侧不用勾选 Create from archetype， 然后点击 next,</p><p>输入 GroupId 和 ArtifactId, Version 默认即可，然后点击 next，</p><p>接着 finish,</p><p>最后，在 src-&gt;main 下面新建 main 函数的类，就可以了。</p><h2 id="2-用该-maven-项目访问-neo4j"><a href="#2-用该-maven-项目访问-neo4j" class="headerlink" title="2. 用该 maven 项目访问 neo4j"></a>2. 用该 maven 项目访问 neo4j</h2><p>在 pom.xml 添加如下：</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">dependencies</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;<span class="name">dependency</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">groupId</span>&gt;</span>org.neo4j.driver<span class="tag">&lt;/<span class="name">groupId</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">artifactId</span>&gt;</span>neo4j-java-driver<span class="tag">&lt;/<span class="name">artifactId</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">version</span>&gt;</span>1.7.3<span class="tag">&lt;/<span class="name">version</span>&gt;</span></span><br><span class="line">    <span class="tag">&lt;/<span class="name">dependency</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">dependencies</span>&gt;</span></span><br></pre></td></tr></table></figure><p>在 main 函数中，<code>import org.neo4j.driver.v1.*</code></p><p>使用方法：<br><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">Driver driver = GraphDatabase.driver( <span class="string">"bolt://localhost:7687"</span>, AuthTokens.basic( <span class="string">"neo4j"</span>, <span class="string">"123456"</span> ) );</span><br><span class="line">Session session = driver.session();</span><br><span class="line">session.run(<span class="string">"CREATE (m)-[:r2]-&gt;(c)"</span>);</span><br></pre></td></tr></table></figure></p><p>该 demo 可以在 github 上下载： <a href="https://github.com/cighao/neo4j-java-driver-usage" target="_blank" rel="noopener">https://github.com/cighao/neo4j-java-driver-usage</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;这里主要介绍使用 java 访问 neo4j 的方法。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Neo4j" scheme="http://cighao.com/tags/Neo4j/"/>
    
  </entry>
  
  <entry>
    <title>Neo4j 介绍(四)：关于 neo4j 的一些博客</title>
    <link href="http://cighao.com/2019/04/21/introduction-of-neo4j-04-blogs/"/>
    <id>http://cighao.com/2019/04/21/introduction-of-neo4j-04-blogs/</id>
    <published>2019-04-21T14:35:22.000Z</published>
    <updated>2019-10-22T12:33:36.548Z</updated>
    
    <content type="html"><![CDATA[<p>记录一些关于 neo4j 的资料。</p><a id="more"></a><p><a href="https://neo4j.com/docs/java-reference/current/extending-neo4j/" target="_blank" rel="noopener">https://neo4j.com/docs/java-reference/current/extending-neo4j/</a></p><p><a href="http://qinxuye.me/article/introduction-to-neo4j/" target="_blank" rel="noopener">http://qinxuye.me/article/introduction-to-neo4j/</a></p><p>Spring Boot 配置 Neo4j: <a href="https://blog.csdn.net/wgangyiii/article/details/79139120" target="_blank" rel="noopener">https://blog.csdn.net/wgangyiii/article/details/79139120</a></p><p>Neo4j 安装：<br><a href="https://blog.csdn.net/wgangyiii/article/details/79150315" target="_blank" rel="noopener">https://blog.csdn.net/wgangyiii/article/details/79150315</a><br><a href="http://www.k6k4.com/blog/show/aaavurkwu1547605733514" target="_blank" rel="noopener">http://www.k6k4.com/blog/show/aaavurkwu1547605733514</a></p><p><a href="https://neo4j.com/docs/operations-manual/3.4/reference/configuration-settings/" target="_blank" rel="noopener">https://neo4j.com/docs/operations-manual/3.4/reference/configuration-settings/</a></p><p>transaction logs: <a href="https://neo4j.com/docs/operations-manual/current/configuration/transaction-logs/" target="_blank" rel="noopener">https://neo4j.com/docs/operations-manual/current/configuration/transaction-logs/</a></p><p><a href="http://www.k6k4.com/circle/show/aakfimepl1547605663377" target="_blank" rel="noopener">http://www.k6k4.com/circle/show/aakfimepl1547605663377</a></p><p><a href="https://dengziming.github.io/tags/neo4j/" target="_blank" rel="noopener">https://dengziming.github.io/tags/neo4j/</a></p><p><a href="http://ju.outofmemory.cn/entry/306362" target="_blank" rel="noopener">http://ju.outofmemory.cn/entry/306362</a></p><p>利用 IDEA 创建第一个hello world 的 mvn 项目，<br><a href="https://blog.csdn.net/YF_Li123/article/details/79953731" target="_blank" rel="noopener">https://blog.csdn.net/YF_Li123/article/details/79953731</a></p><p>Java 访问 neo4j<br><a href="https://blog.csdn.net/qq_15783243/article/details/78091712" target="_blank" rel="noopener">https://blog.csdn.net/qq_15783243/article/details/78091712</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;记录一些关于 neo4j 的资料。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Neo4j" scheme="http://cighao.com/tags/Neo4j/"/>
    
  </entry>
  
  <entry>
    <title>Neo4j 介绍(三)：使用 python 访问 neo4j</title>
    <link href="http://cighao.com/2019/04/21/introduction-of-neo4j-03-python-driver/"/>
    <id>http://cighao.com/2019/04/21/introduction-of-neo4j-03-python-driver/</id>
    <published>2019-04-21T04:35:22.000Z</published>
    <updated>2019-10-22T12:33:57.217Z</updated>
    
    <content type="html"><![CDATA[<p>这里主要介绍使用 python 访问 neo4j 的方法。</p><a id="more"></a><p>python driver 的地址：<a href="https://github.com/neo4j/neo4j-python-driver" target="_blank" rel="noopener">https://github.com/neo4j/neo4j-python-driver</a></p><p>需要安装 python 3 版本，然后安装 pip3, 通过 pip3 安装驱动可以把驱动安装到 python 3 对应的库。</p><p>安装驱动：<br><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pip3 install git+https://github.com/neo4j/neo4j-python-driver.git#egg=neo4j</span><br></pre></td></tr></table></figure></p><p>有可能会在运行时报错，</p><blockquote><p>File “/usr/local/lib/python3.4/dist-packages/neobolt/direct.py”, line 123, in supports<br>    return self.version_info() &gt;= (3, 2)<br>TypeError: unorderable types: str() &gt;= int()</p></blockquote><p>定位到报错的文件，发现报错的是　<code>direct.py</code>　文件的　<code>supports()</code> 函数。报错的原因的类型不匹配，通过调试发现，<code>self.version_info()</code>　返回的是字符串数组 <code>(&#39;dev&#39;,)</code>, 运行　<code>self.version_info() &gt;= (3, 2)</code>　显然就会报错。没有找到有效的解决办法。<code>supports()</code> 函数主要是进行版本检查的，不是核心业务代码，所以目前的解决办法是，直接在　<code>supports()</code>　函数的第一行添加 <code>return True</code>, 默认版本检查通过。然后运行，发现没有报错。</p><p>示例：</p><pre><code class="python"><span class="keyword">from</span> neo4j <span class="keyword">import</span> GraphDatabasedriver = GraphDatabase.driver(<span class="string">"bolt://localhost:7687"</span>, auth=(<span class="string">"neo4j"</span>, <span class="string">"123456"</span>))<span class="function"><span class="keyword">def</span> <span class="title">add_friend</span><span class="params">(tx, name, friend_name)</span>:</span>    tx.run(<span class="string">"MERGE (a:Person {name: $name}) "</span>           <span class="string">"MERGE (a)-[:KNOWS]-&gt;(friend:Person {name: $friend_name})"</span>,           name=name, friend_name=friend_name)<span class="function"><span class="keyword">def</span> <span class="title">print_friends</span><span class="params">(tx, name)</span>:</span>    <span class="keyword">for</span> record <span class="keyword">in</span> tx.run(<span class="string">"MATCH (a:Person)-[:KNOWS]-&gt;(friend) WHERE a.name = $name "</span>                         <span class="string">"RETURN friend.name ORDER BY friend.name"</span>, name=name):        print(record[<span class="string">"friend.name"</span>])<span class="keyword">with</span> driver.session() <span class="keyword">as</span> session:    session.write_transaction(add_friend, <span class="string">"Arthur"</span>, <span class="string">"Guinevere"</span>)    session.write_transaction(add_friend, <span class="string">"Arthur"</span>, <span class="string">"Lancelot"</span>)    session.write_transaction(add_friend, <span class="string">"Arthur"</span>, <span class="string">"Merlin"</span>)    session.read_transaction(print_friends, <span class="string">"Arthur"</span>)</code></pre>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;这里主要介绍使用 python 访问 neo4j 的方法。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Neo4j" scheme="http://cighao.com/tags/Neo4j/"/>
    
  </entry>
  
  <entry>
    <title>Neo4j 介绍(二)：main 函数</title>
    <link href="http://cighao.com/2019/04/13/introduction-of-neo4j-02-start/"/>
    <id>http://cighao.com/2019/04/13/introduction-of-neo4j-02-start/</id>
    <published>2019-04-13T04:35:22.000Z</published>
    <updated>2019-10-22T12:33:17.840Z</updated>
    
    <content type="html"><![CDATA[<p>这里主要介绍 neo4j 的 main 函数的一些流程。</p><p><img src="/img/articles/neo4j/neo4j-0201.png" alt></p><a id="more"></a><p>main 函数在 <code>CommunityEntryPoint</code> 类中。</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title">main</span><span class="params">( String[] args )</span></span></span><br><span class="line"><span class="function"></span>&#123;</span><br><span class="line">    <span class="keyword">int</span> status = ServerBootstrapper.start( <span class="keyword">new</span> CommunityBootstrapper(), args );</span><br><span class="line">    <span class="keyword">if</span> ( status != <span class="number">0</span> )</span><br><span class="line">    &#123;</span><br><span class="line">        System.exit( status );</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>首先通过 <code>ServerBootstrapper.start(new CommunityBootstrapper(), args)</code> 进入到 <code>ServerBootstrapper.start(Bootstrapper boot, String... argv)</code> 方法， 在该方法的末尾通过 <code>boot.start(args.homeDir(), args.configFile(), args.configOverrides())</code> 调用进入到 <code>ServerBootstrapper.start(File homeDir, Optional&lt;File&gt; configFile, Map&lt;String, String&gt; configOverrides)</code>, 在该方法的末尾通过<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">server = createNeoServer(config, dependencies);</span><br><span class="line">server.start();</span><br></pre></td></tr></table></figure></p><p>启动。</p><p>通过 <code>createNeoServer(config, dependencies)</code> 会进入到，<code>ServerBootstrapper.createNeoServer(Config config, GraphDatabaseDependencies dependencies)</code>, 在该函数的最后通过 <code>createNeoServer(graphFactory, config, dependencies)</code> 会进入到 <code>CommunityBootstrapper.createNeoServer(GraphFactory graphFactory, Config config, GraphDatabaseDependencies dependencies)</code>, 该函数只有一个语句 </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">return new CommunityNeoServer(config, graphFactory, dependencies);</span><br></pre></td></tr></table></figure><p>最终是新建了一个 <code>CommunityNeoServer</code> 对象返回到了 <code>ServerBootstrapper.start()</code> 中， 并调用了 <code>CommunityNeoServer</code> 对象的 <code>start()</code> 方法，完成了 neo4j 的启动。</p><p>这样我们发现，整个启动的核心代码都在 <code>CommunityNeoServer.start()</code> 中，<code>CommunityNeoServer</code> 继承自 <code>AbstractNeoServer</code>， 并且没有重写 <code>AbstractNeoServer</code> 的 <code>start()</code> 方法，所以启动的核心代码都在 <code>AbstractNeoServer.start()</code> 函数中。 <code>AbstractNeoServer.start()</code> 中只有一行代码：</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">life.start();</span><br></pre></td></tr></table></figure><p>这里的 <code>life</code> 是 <code>AbstractNeoServer</code> 类的一个变量，是 <code>LifeSupport</code> 类的一个实例。<code>lift.start()</code> 会跳去执行 <code>LifeSupport.start()</code> 方法。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;这里主要介绍 neo4j 的 main 函数的一些流程。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/articles/neo4j/neo4j-0201.png&quot; alt&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="Neo4j" scheme="http://cighao.com/tags/Neo4j/"/>
    
  </entry>
  
  <entry>
    <title>日常遇到的一些小问题的解决方案</title>
    <link href="http://cighao.com/2019/03/29/problems-in-dailylife/"/>
    <id>http://cighao.com/2019/03/29/problems-in-dailylife/</id>
    <published>2019-03-29T13:35:22.000Z</published>
    <updated>2024-07-18T16:04:57.922Z</updated>
    
    <content type="html"><![CDATA[<p>记录平时走过的坑。</p><a id="more"></a><h3 id="1-VirtualBox-中让虚拟机的分辨率自适应窗口大小"><a href="#1-VirtualBox-中让虚拟机的分辨率自适应窗口大小" class="headerlink" title="1. VirtualBox 中让虚拟机的分辨率自适应窗口大小"></a>1. VirtualBox 中让虚拟机的分辨率自适应窗口大小</h3><p>(1) 打开虚拟机 Devices -&gt; Install Guest Additions…(it’s like inserting a cd to cdrom drive)<br>(2) 在虚拟机中运行以下命令：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">sudo mkdir --p /media/cdrom</span><br><span class="line">sudo mount -t auto /dev/cdrom /media/cdrom/</span><br><span class="line">cd /media/cdrom/</span><br><span class="line">sudo sh VBoxLinuxAdditions.run</span><br></pre></td></tr></table></figure></p><p>可以在虚拟机窗口的下面选择调整大小。</p><p><br></p><h3 id="2-win10-安装-ubuntu"><a href="#2-win10-安装-ubuntu" class="headerlink" title="2. win10 安装 ubuntu"></a>2. win10 安装 ubuntu</h3><p><a href="https://segmentfault.com/a/1190000014523888" target="_blank" rel="noopener">https://segmentfault.com/a/1190000014523888</a></p><p><br></p><h3 id="3-sudo-usr-bin-sudo-必须属于用户-ID-0"><a href="#3-sudo-usr-bin-sudo-必须属于用户-ID-0" class="headerlink" title="3. sudo: /usr/bin/sudo 必须属于用户  ID 0"></a>3. sudo: /usr/bin/sudo 必须属于用户  ID 0</h3><p>一不小心把 /usr 目录的权限设置成了普通的用户，导致 sudo 用不了，输入 sudo 提示：</p><blockquote><p>sudo: /usr/bin/sudo 必须属于用户  ID 0(的用户)并且设置 setuid 位<br>重启进入 recovery 模式。<br>recovery模式 –&gt; 选择 root<br>进入命令行，执行：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">chown root:root /usr/bin/sudo</span><br><span class="line">chmod 4755 /usr/bin/sudo</span><br></pre></td></tr></table></figure></p></blockquote><p>reboot 重启。<br>不过还是建议把整个 usr 目录的所有者改成 root：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">chown -R root:root /usr</span><br></pre></td></tr></table></figure></p><p><br></p><h3 id="4-gcc-error-parser-lex-c-No-such-file-or-directory"><a href="#4-gcc-error-parser-lex-c-No-such-file-or-directory" class="headerlink" title="4. gcc: error: parser_lex.c: No such file or directory"></a>4. gcc: error: parser_lex.c: No such file or directory</h3><p>从 <a href="https://github.com/filebench/filebench" target="_blank" rel="noopener">https://github.com/filebench/filebench</a> 安装 filebench 时，遇到 gcc: error: parser_lex.c: No such file or directory</p><p>Solution: <code>sudo yum install flex</code> 即可。</p><p><br></p><h3 id="5-Install-own-OpenSSL-on-MacOS"><a href="#5-Install-own-OpenSSL-on-MacOS" class="headerlink" title="5. Install own OpenSSL on MacOS"></a>5. Install own OpenSSL on MacOS</h3><p>(1) <code>brew install openssl</code><br>(2) open <code>~/.bash_profile</code> add:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">export PATH=&quot;/usr/local/opt/openssl/bin:$PATH&quot;</span><br><span class="line">export LDFLAGS=&quot;-L/usr/local/opt/openssl/lib&quot;</span><br><span class="line">export CPPFLAGS=&quot;-I/usr/local/opt/openssl/include&quot;</span><br><span class="line">source ~/.bash_profile</span><br></pre></td></tr></table></figure></p><p>(3) <code>source ~/.bash_profile</code></p><p><br></p><h3 id="6-ramdisk-使用"><a href="#6-ramdisk-使用" class="headerlink" title="6. ramdisk 使用"></a>6. ramdisk 使用</h3><p>创建挂载目录： <code>mkdir /home/chenhao/ramdisk</code><br>查看内存使用量: <code>htop</code><br>分配内存并挂载: <code>sudo mount -t tmpfs -o size=10240m ramdisk /home/chenhao/ramdisk</code><br>查看： df -h<br>修改 <code>/etc/fstab</code> 自动挂载: <code>ramdisk /home/chenhao/ramdisk  tmpfs   rw,relatime,size=10G 0 0</code></p><p><br></p><h3 id="7-安装-tbb"><a href="#7-安装-tbb" class="headerlink" title="7. 安装 tbb"></a>7. 安装 tbb</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">git clone https://github.com/intel/tbb.git</span><br><span class="line">cd tbb</span><br><span class="line">make</span><br></pre></td></tr></table></figure><p>Inside tbb/build will be two new folders, one for the release version and the other for the debug version. Those folders are named like “architecture_ldVersion_g++Version_kernelVersion”.<br>I recommend setting some variables, for example in the .bashrc file, like:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">TBB_INSTALL_DIR = $HOME/tbb</span><br><span class="line">TBB_INCLUDE = $TBB_INSTALL_DIR/include</span><br><span class="line">TBB_LIBRARY_RELEASE = $TBB_INSTALL_DIR/build/RELEASE_FOLDER</span><br><span class="line">TBB_LIBRARY_DEBUG = $TBB_INSTALL_DIR/build/DEBUG_FOLDER</span><br></pre></td></tr></table></figure></p><p>Example<br><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// main.cpp</span></span><br><span class="line"><span class="meta">#<span class="meta-keyword">include</span> <span class="meta-string">"tbb/task_scheduler_init.h"</span></span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="keyword">int</span> <span class="title">main</span><span class="params">(<span class="keyword">int</span> argc, <span class="keyword">char</span>* argv[])</span> </span>&#123;</span><br><span class="line">  <span class="comment">//  tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic);</span></span><br><span class="line">  <span class="comment">// implicit tbb::task_sheduler_init::automatic</span></span><br><span class="line">  tbb::task_scheduler_init init;</span><br><span class="line">  <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure></p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">g++ main.cpp -I$TBB_INCLUDE -Wl,-rpath,$TBB_LIBRARY_RELEASE -L$TBB_LIBRARY_RELEASE -ltbb</span><br></pre></td></tr></table></figure><p>With -Wl,-rpath,$TBB_LIBRARY_RELEASE we are telling the dynamic linker where to find libtbb.so<br>Installation for Apple clang 5.1: [thanks to rwols for the info]<br>Instead of typing make, type make compiler=clang or make compiler=clang stdlib=libc++</p><h3 id="8-MySQL-的一些相关操作"><a href="#8-MySQL-的一些相关操作" class="headerlink" title="8. MySQL 的一些相关操作"></a>8. MySQL 的一些相关操作</h3><p>(1) mysql 创建用户<br>用此命令进入mysql：<code>mysql -u root mysql</code><br>查询用户: <code>select Host,User,Password from mysql.user;</code><br>删除用户名为空的用户: <code>delete from mysql.user where user=&#39;&#39;;</code><br>查看当前用户: <code>SELECT CURRENT_USER();</code></p><p>reference: <a href="https://www.jianshu.com/p/d7b9c468f20d" target="_blank" rel="noopener">https://www.jianshu.com/p/d7b9c468f20d</a></p><p>命令:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">CREATE USER &apos;username&apos;@&apos;host&apos; IDENTIFIED BY &apos;password&apos;;</span><br></pre></td></tr></table></figure></p><p><code>username</code>：你将创建的用户名<br><code>host</code>：指定该用户在哪个主机上可以登陆，如果是本地用户可用localhost，如果想让该用户可以从任意远程主机登陆，可以使用通配符%<br><code>password</code>：该用户的登陆密码，密码可以为空，如果为空则该用户可以不需要密码登陆服务器</p><p>e.g.:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">CREATE USER &apos;dog&apos;@&apos;localhost&apos; IDENTIFIED BY &apos;123456&apos;;</span><br><span class="line">CREATE USER &apos;pig&apos;@&apos;192.168.1.101_&apos; IDENDIFIED BY &apos;123456&apos;;</span><br><span class="line">CREATE USER &apos;pig&apos;@&apos;%&apos; IDENTIFIED BY &apos;123456&apos;;</span><br><span class="line">CREATE USER &apos;pig&apos;@&apos;%&apos; IDENTIFIED BY &apos;&apos;;</span><br><span class="line">CREATE USER &apos;pig&apos;@&apos;%&apos;;</span><br></pre></td></tr></table></figure></p><p>刷新用户权限： <code>FLUSH PRIVILEGES;</code></p><p>(2) 创建数据库<br>创建: <code>CREATE DATABASE linkdb</code><br>显示: <code>show databases</code></p><p>(3) 授权<br>先要用 root 登陆: <code>mysql -u root mysql</code><br>在选择数据库: <code>use &lt;database name&gt;</code><br>在授权，最后刷新权限: <code>FLUSH PRIVILEGES;</code></p><p>命令:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">GRANT privileges ON databasename.tablename TO &apos;username&apos;@&apos;host&apos;</span><br></pre></td></tr></table></figure></p><p><code>privileges</code>：用户的操作权限，如SELECT，INSERT，UPDATE等，如果要授予所的权限则使用ALL<br><code>databasename</code>：数据库名<br><code>tablename</code>：表名，如果要授予该用户对所有数据库和表的相应操作权限则可用<em>表示，如</em>.*</p><p>e.g.:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">GRANT SELECT, INSERT ON test.user TO &apos;pig&apos;@&apos;%&apos;;</span><br><span class="line">GRANT ALL ON *.* TO &apos;pig&apos;@&apos;%&apos;;</span><br><span class="line">GRANT ALL ON linkdb.* TO &apos;linkbench&apos;@&apos;%&apos; identified by &apos;123456&apos; with grant option;</span><br></pre></td></tr></table></figure></p><h3 id="9-源码安装-GCC-5"><a href="#9-源码安装-GCC-5" class="headerlink" title="9. 源码安装 GCC 5"></a>9. 源码安装 GCC 5</h3><p>下载源码并解压。<br>进入源码路径后运行: <code>./contrib/download_prerequisites</code><br>新建 build 目录: <code>mkdir build</code><br>进入 build 目录后运行: <code>../configure –-prefix=path --enable-checking=release --enable-languages=c,c++ --disable-multilib</code><br>prefix 指定安装目录。<br>然后在 build 目录下 <code>make &amp; make install</code></p><h3 id="10-ssh-文件权限问题"><a href="#10-ssh-文件权限问题" class="headerlink" title="10. .ssh 文件权限问题"></a>10. .ssh 文件权限问题</h3><p><code>.ssh</code> 文件夹 和 <code>authorized_keys</code> 文件必须满足一定的权限才行。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">chmod 600 .ssh/authorized_keys</span><br><span class="line">chmod 700 .ssh</span><br></pre></td></tr></table></figure><h3 id="11-Linux-设置最大可打开文件数"><a href="#11-Linux-设置最大可打开文件数" class="headerlink" title="11. Linux 设置最大可打开文件数"></a>11. Linux 设置最大可打开文件数</h3><p>查看 <code>ulimit -n</code></p><p>设置 <code>ulimit -n 65535</code></p><p>修改配置：<br>(1) 打开 <code>/etc/security/limits.conf</code> 添加 <code>username hard  nofile 1048576</code><br>(2) 打开 <code>/etc/ssh/sshd_config</code> 添加 <code>UsePAM=yes</code><br>(3) 打开 <code>/etc/pam.d/sshd</code> 添加 <code>session required   pam_limits.so</code></p><p>如果无法生效，可以先切换到root用户，再切换回来</p><h3 id="12-修改-huge-page-size-为-1GB"><a href="#12-修改-huge-page-size-为-1GB" class="headerlink" title="12. 修改 huge page size 为 1GB"></a>12. 修改 huge page size 为 1GB</h3><p>(1) 追加 default_hugepagesz=1G hugepagesz=1G 到 /etc/default/grub 里的变量 GRUB_CMDLINE_LINUX 中，<br>(2) 运行 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg<br>(3) reboot</p><h3 id="13-关闭超线程"><a href="#13-关闭超线程" class="headerlink" title="13. 关闭超线程"></a>13. 关闭超线程</h3><p><code>echo off &gt; /sys/devices/system/cpu/smt/control</code></p><h3 id="14-disable-CPU"><a href="#14-disable-CPU" class="headerlink" title="14. disable CPU"></a>14. disable CPU</h3><p><code>echo 0 &gt; /sys/devices/system/cpu/cpu1/online</code></p><p><code>lscpu</code> 可以查看 CPU 的具体信息</p><h3 id="15-Mac-下-brew-切换为国内源"><a href="#15-Mac-下-brew-切换为国内源" class="headerlink" title="15. Mac 下 brew 切换为国内源"></a>15. Mac 下 brew 切换为国内源</h3><p>参考：<a href="https://cloud.tencent.com/developer/article/1614039" target="_blank" rel="noopener">https://cloud.tencent.com/developer/article/1614039</a></p><p>替换为阿里源</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> 查看 brew.git 当前源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> <span class="built_in">cd</span> <span class="string">"<span class="variable">$(brew --repo)</span>"</span> &amp;&amp; git remote -v</span></span><br><span class="line">origin    https://github.com/Homebrew/brew.git (fetch)</span><br><span class="line">origin    https://github.com/Homebrew/brew.git (push)</span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> 查看 homebrew-core.git 当前源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> <span class="built_in">cd</span> <span class="string">"<span class="variable">$(brew --repo homebrew/core)</span>"</span> &amp;&amp; git remote -v</span></span><br><span class="line">origin    https://github.com/Homebrew/homebrew-core.git (fetch)</span><br><span class="line">origin    https://github.com/Homebrew/homebrew-core.git (push)</span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> 修改 brew.git 为阿里源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> git -C <span class="string">"<span class="variable">$(brew --repo)</span>"</span> remote <span class="built_in">set</span>-url origin https://mirrors.aliyun.com/homebrew/brew.git</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> 修改 homebrew-core.git 为阿里源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> git -C <span class="string">"<span class="variable">$(brew --repo homebrew/core)</span>"</span> remote <span class="built_in">set</span>-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> zsh 替换 brew bintray 镜像</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> <span class="built_in">echo</span> <span class="string">'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles'</span> &gt;&gt; ~/.zshrc</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> <span class="built_in">source</span> ~/.zshrc</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> bash 替换 brew bintray 镜像</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> <span class="built_in">echo</span> <span class="string">'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles'</span> &gt;&gt; ~/.bash_profile</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> <span class="built_in">source</span> ~/.bash_profile</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> 刷新源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> brew update</span></span><br></pre></td></tr></table></figure><p>重置为官方源</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#</span><span class="bash"> 重置 brew.git 为官方源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> git -C <span class="string">"<span class="variable">$(brew --repo)</span>"</span> remote <span class="built_in">set</span>-url origin https://github.com/Homebrew/brew.git</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> 重置 homebrew-core.git 为官方源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> git -C <span class="string">"<span class="variable">$(brew --repo homebrew/core)</span>"</span> remote <span class="built_in">set</span>-url origin https://github.com/Homebrew/homebrew-core.git</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> 重置 homebrew-cask.git 为官方源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> git -C <span class="string">"<span class="variable">$(brew --repo homebrew/cask)</span>"</span> remote <span class="built_in">set</span>-url origin https://github.com/Homebrew/homebrew-cask</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> zsh 注释掉 HOMEBREW_BOTTLE_DOMAIN 配置</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> vi ~/.zshrc</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> <span class="built_in">export</span> HOMEBREW_BOTTLE_DOMAIN=xxxxxxxxx</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> bash 注释掉 HOMEBREW_BOTTLE_DOMAIN 配置</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> vi ~/.bash_profile</span></span><br><span class="line"><span class="meta">#</span><span class="bash"> <span class="built_in">export</span> HOMEBREW_BOTTLE_DOMAIN=xxxxxxxxx</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#</span><span class="bash"> 刷新源</span></span><br><span class="line"><span class="meta">$</span><span class="bash"> brew update</span></span><br></pre></td></tr></table></figure><h3 id="16-MacOS安装不同版本-node"><a href="#16-MacOS安装不同版本-node" class="headerlink" title="16. MacOS安装不同版本 node"></a>16. MacOS安装不同版本 node</h3><p>参考：<a href="https://juejin.cn/post/7043972066424389662" target="_blank" rel="noopener">https://juejin.cn/post/7043972066424389662</a></p><p>首先安装n模块：<code>sudo npm install -g n</code><br>升级node.js到最新稳定版: <code>sudo n stable</code><br>升级到最新版: <code>sudo n latest</code><br>可以跟随版本号,升级到任意版本: <code>sudo n v0.10.26</code> or <code>sudo n 0.10.26</code><br>切换使用版本: <code>sudo n 7.10.0</code><br>删除制定版本: <code>sudo n rm 7.10.0</code><br>用制定的版本执行脚本: <code>n use 7.10.0 some.js</code><br>可以查看所有已安装的node版本: <code>sudo n</code></p><h3 id="17-yum-dnf-出现-Config-error-Connection-refused-None"><a href="#17-yum-dnf-出现-Config-error-Connection-refused-None" class="headerlink" title="17. yum/dnf 出现 Config error: Connection refused: None"></a>17. yum/dnf 出现 Config error: Connection refused: None</h3><p>系统的网络是通的，是可以curl和ping通公网的。而且即使 yum clean all 也会报错。</p><p>这个时候需要使用 strace 进行调试。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo strace -o yum_strace.log yum clean all</span><br></pre></td></tr></table></figure><p>然后查看 yum_strace.log 文件，找出具体的错误位置。</p><p>比如在我的case里，日志里面有如下的信息：</p><blockquote><p>stat(“/dev/log”, {st_mode=S_IFSOCK|0666, st_size=0, …}) = 0<br>socket(AF_UNIX, SOCK_DGRAM, 0)          = 6<br>connect(6, {sa_family=AF_UNIX, sun_path=”/dev/log”}, 10) = -1 ECONNREFUSED (Connection refused)<br>close(6)                                = 0<br>socket(AF_UNIX, SOCK_STREAM, 0)         = 6<br>connect(6, {sa_family=AF_UNIX, sun_path=”/dev/log”}, 10) = -1 ECONNREFUSED (Connection refused)<br>close(6)                                = 0<br>write(2, “Config error: Connection refused”…, 39) = 39<br>write(3, “2024-07-02T05:42:28Z CRITICAL Co”…, 69) = 69<br>write(3, “2024-07-02T05:42:28Z DDEBUG Clea”…, 41) = 41</p></blockquote><p>从 strace 日志中可以看出，yum 尝试连接到 /dev/log 进行日志记录时，遇到了 “Connection refused” 错误。这通常意味着系统日志服务（如 rsyslog 或 systemd-journald）未运行或有问题。</p><p>可以通过下面的方法解决：<br>（1）检查日志服务状态，检查系统日志服务是否在运行。<br>对于 rsyslog 服务：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo systemctl status rsyslog</span><br></pre></td></tr></table></figure></p><p>对于 systemd-journald 服务：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo systemctl status systemd-journald</span><br></pre></td></tr></table></figure></p><p>(2) 启动或重启日志服务，如果发现日志服务未运行或有问题，尝试启动或重启它。<br>启动或重启 rsyslog 服务：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo systemctl start rsyslog</span><br><span class="line">sudo systemctl restart rsyslog</span><br></pre></td></tr></table></figure></p><p>启动或重启 systemd-journald 服务：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo systemctl start systemd-journald</span><br><span class="line">sudo systemctl restart systemd-journald</span><br></pre></td></tr></table></figure></p><p>(3) 检查 /dev/log 文件, 确保 /dev/log 文件存在并且是一个符号链接指向正确的位置。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ls -l /dev/log</span><br></pre></td></tr></table></figure></p><h3 id="18-编译出现-version-‘CXXABI-1-3-9’-not-found-required-by-xxx"><a href="#18-编译出现-version-‘CXXABI-1-3-9’-not-found-required-by-xxx" class="headerlink" title="18. 编译出现 version ‘CXXABI_1.3.9’ not found (required by xxx)"></a>18. 编译出现 version ‘CXXABI_1.3.9’ not found (required by xxx)</h3><p>这种情况通常是因为链接的库的CXXABI版本和当前系统的CXXABI版本不同。</p><p>查看链接的库的一些依赖：<code>ldd xxx.so</code></p><blockquote><p>linux-vdso.so.1 =&gt;  (0x00007ffcd518d000)<br> libdl.so.2 =&gt; /lib64/libdl.so.2 (0x00007f2bf9732000)<br> libstdc++.so.6 =&gt; /lib64/libstdc++.so.6 (0x00007f2bf942a000)<br> libm.so.6 =&gt; /lib64/libm.so.6 (0x00007f2bf9128000)<br> libgcc_s.so.1 =&gt; /lib64/libgcc_s.so.1 (0x00007f2bf8f12000)<br> libc.so.6 =&gt; /lib64/libc.so.6 (0x00007f2bf8b43000)<br> /lib64/ld-linux-x86-64.so.2 (0x00007f2bf9b61000)</p></blockquote><p>查看 libstdc++ 支持的 ABI 版本： <code>strings /lib64/libstdc++.so.6 | grep CXXABI</code> 或者 <code>strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI</code></p><blockquote><p>CXXABI_1.3<br>CXXABI_1.3.1<br>CXXABI_1.3.2<br>CXXABI_1.3.3<br>CXXABI_1.3.4<br>CXXABI_1.3.5<br>CXXABI_1.3.6<br>CXXABI_1.3.7<br>CXXABI_TM_1</p></blockquote><p>查看当前系统的 libstdc 版本 <code>ls /lib64/libstdc++.so.6 -alh</code></p><blockquote><p>lrwxrwxrwx 1 root root 19 Feb 17  2022 /lib64/libstdc++.so.6 -&gt; libstdc++.so.6.0.19</p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;记录平时走过的坑。&lt;/p&gt;
    
    </summary>
    
    
      <category term="计算机" scheme="http://cighao.com/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
    
      <category term="Tool" scheme="http://cighao.com/tags/Tool/"/>
    
  </entry>
  
  <entry>
    <title>Neo4j 介绍(一)：安装</title>
    <link href="http://cighao.com/2019/03/21/introduction-of-neo4j-01-install/"/>
    <id>http://cighao.com/2019/03/21/introduction-of-neo4j-01-install/</id>
    <published>2019-03-21T13:35:22.000Z</published>
    <updated>2019-10-22T12:33:50.802Z</updated>
    
    <content type="html"><![CDATA[<p>这里主要介绍 neo4j 的源码安装，在 IDEA 中修改和启动。</p><a id="more"></a><h2 id="1-安装-IntelliJ-IDEA"><a href="#1-安装-IntelliJ-IDEA" class="headerlink" title="1. 安装 IntelliJ IDEA"></a>1. 安装 IntelliJ IDEA</h2><p>打开 IDEA 官网 <a href="https://www.jetbrains.com/idea/" target="_blank" rel="noopener">https://www.jetbrains.com/idea/</a> 下载源码</p><p>下载完成后解压到 /opt 下：<br><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo tar -zxvf ideaIU-2016.3.3-no-jdk.tar.gz -C /opt</span><br></pre></td></tr></table></figure></p><p>进入到源码目录： <code>cd /opt/idea-xxx/bin</code></p><p>终端输入 <code>./idea.sh</code> 进行安装。</p><p>社区版的不用激活。旗舰版的需要激活：</p><p>先修改 host 文件，添加： 0.0.0.0 account.jetbrains.com<br>0.0.0.0 <a href="http://www.jetbrains.com" target="_blank" rel="noopener">www.jetbrains.com</a></p><p>然后使用使用激活码：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkFDIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiRFBOIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifV0sImhhc2giOiI4OTA4Mjg5LzAiLCJncmFjZVBlcmlvZERheXMiOjAsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-Owt3/+LdCpedvF0eQ8635yYt0+ZLtCfIHOKzSrx5hBtbKGYRPFDrdgQAK6lJjexl2emLBcUq729K1+ukY9Js0nx1NH09l9Rw4c7k9wUksLl6RWx7Hcdcma1AHolfSp79NynSMZzQQLFohNyjD+dXfXM5GYd2OTHya0zYjTNMmAJuuRsapJMP9F1z7UTpMpLMxS/JaCWdyX6qIs+funJdPF7bjzYAQBvtbz+6SANBgN36gG1B2xHhccTn6WE8vagwwSNuM70egpahcTktoHxI7uS1JGN9gKAr6nbp+8DbFz3a2wd+XoF3nSJb/d2f/6zJR8yJF8AOyb30kwg3zf5cWw==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==</span><br></pre></td></tr></table></figure></p><p>激活可以参考：<a href="https://blog.csdn.net/qq_35246620/article/details/80522720" target="_blank" rel="noopener">https://blog.csdn.net/qq_35246620/article/details/80522720</a><br><a href="https://www.douban.com/note/671690598/" target="_blank" rel="noopener">https://www.douban.com/note/671690598/</a><br><a href="https://guobinhit.blog.csdn.net/article/details/89040919" target="_blank" rel="noopener">https://guobinhit.blog.csdn.net/article/details/89040919</a></p><h2 id="2-安装-jdk"><a href="#2-安装-jdk" class="headerlink" title="2. 安装 jdk"></a>2. 安装 jdk</h2><p>选择要安装 java 的位置，如 <code>/usr/</code> 目录下，新建java文件夹(<code>mkdir java</code>)</p><p>下载 jdk 文件到 <code>/usr/java</code></p><p>解压：<code>tar -zxvf jdk-xxx.tar.gz</code></p><p>配置环境变量，打开 <code>/etc/profile</code>，最后面添加如下内容：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">JAVA_HOME=/usr/java/jdk-xxxxx</span><br><span class="line">CLASSPATH=.:$JAVA_HOME/lib.tools.jar</span><br><span class="line">PATH=$JAVA_HOME/bin:$PATH</span><br><span class="line">export JAVA_HOME CLASSPATH PATH</span><br></pre></td></tr></table></figure></p><p>刷新环境变量：<code>source /etc/profile</code></p><p>验证是否安装成功：<code>java -version</code></p><h2 id="3-安装-maven"><a href="#3-安装-maven" class="headerlink" title="3. 安装 maven"></a>3. 安装 maven</h2><p>下载源码 <code>apache-maven-xxx-bin.tar.gz</code></p><p>解压： <code>tar zxvf apache-maven-xxx-bin.tar.gz</code></p><p>移动： <code>sudo mv apache-maven-xxx  /opt/maven/</code></p><p>配置环境变量，在 <code>/etc/profile</code> 中添加：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">export M2_HOME=/opt/maven/apache-maven-xxx</span><br><span class="line">export M2=$M2_HOME/bin</span><br><span class="line">export PATH=$M2:$PATH</span><br></pre></td></tr></table></figure></p><p>刷新环境变量： <code>source /etc/profile</code></p><p>测试：<code>mvn -version</code></p><h2 id="4-安装-Neo4j"><a href="#4-安装-Neo4j" class="headerlink" title="4. 安装 Neo4j"></a>4. 安装 Neo4j</h2><p>参考：<a href="https://blog.csdn.net/wgangyiii/article/details/79150315" target="_blank" rel="noopener">https://blog.csdn.net/wgangyiii/article/details/79150315</a> </p><p>(1) 从 github 下载源码: <a href="https://github.com/neo4j/neo4j/" target="_blank" rel="noopener">https://github.com/neo4j/neo4j/</a></p><p>(2) 进入源码目录执行：<code>mvn clean install</code><br>执行　<code>mvn clean install</code> 进行编译导包，如果只使用该命令，则会进行测试代码，是一个非常耗费时间的过程，所以推荐使用 <code>mvn clean install -DskipTest</code>　该命令的意思是不执行测试直接导包编译。使用 <code>-DskipTests</code> 表示不执行测试用例，但编译测试用例类生成相应的 class 文件至 target/test-classes下。使用 <code>-Dmaven.test.skip=true</code> 表示不执行测试用例，也不编译测试用例类。</p><p>经常会有一些奇怪的错误，尝试不同的安装命令：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">mvn clean install</span><br><span class="line">mvn clean install -DskipTest</span><br><span class="line">mvn clean install -Dmaven.test.skip=true</span><br><span class="line">mvn clean install -DskipTest -DskipBrowser -DfullBuild</span><br></pre></td></tr></table></figure></p><p>有些时候莫名其妙就有用了，说不出来为啥。</p><p>(3) 解压编译文件:<br>编译完成后进入 <code>packaging/standalone/target</code> 里面会有编译好的项目压缩包，名为　<code>neo4j-community-3.5.4-SNAPSHOT-unix.tar.gz</code>　和　<code>neo4j-community-3.5.4-SNAPSHOT-windows.zip</code>，.tar 是面向 ubuntu 系统的，.zip是面向 windows 系统的，执行解压。</p><p>(4) 运行<br>进入解压后的文件夹，运行　<code>bin/neo4j start</code>。</p><p>浏览器输入　<a href="http://localhost:7474" target="_blank" rel="noopener">http://localhost:7474</a>　可以看到显示界面。</p><h2 id="5-在-IDEA-中导入-neo4j"><a href="#5-在-IDEA-中导入-neo4j" class="headerlink" title="5. 在 IDEA 中导入 neo4j"></a>5. 在 IDEA 中导入 neo4j</h2><p>IDEA 中导入项目。main 函数在 <code>community/server/src/main/java/org/neo4j/server</code>　中的　<code>CommunityEntryPoint</code> 类中。</p><p>配置 application 运行参数：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">Main class: org.neo4j.server.CommunityEntryPoint</span><br><span class="line">Program arguments: -server --home-dir= xxxx --config-dir=xxxx</span><br><span class="line">Working direction: neo4j-3.5</span><br><span class="line">Use classpath of module: neo4j-community-standalone</span><br><span class="line">JRE: /usr/java/jdk1.8.0_201/jre</span><br></pre></td></tr></table></figure></p><p>该 main 函数需要两个参数，一个是 <code>home-dir</code>， 这是存放数据库等文件的目录，可以自己设置一个文件夹。另一个是 <code>config-dir</code>， 这个是配置文件所在的目录，默认的配置文件是 neo4j.conf， 上一步解压的 neo4j-community-3.5.4-SNAPSHOT 的 conf 目录下就有配置文件 neo4j.conf， 那么 <code>config-dir</code> 参数可以设置为 <code>neo4j-community-3.5.4-SNAPSHOT/conf</code>。</p><p>配置文件的设置可以参考官方文档： <a href="https://neo4j.com/docs/operations-manual/current/reference/configuration-settings" target="_blank" rel="noopener">https://neo4j.com/docs/operations-manual/current/reference/configuration-settings</a> 和 <a href="https://neo4j.com/docs/operations-manual/current/configuration/" target="_blank" rel="noopener">https://neo4j.com/docs/operations-manual/current/configuration/</a></p><p>然后运行 <code>community/server/src/main/java/org/neo4j/server</code>　中的　<code>CommunityEntryPoint</code> 类</p><p>有可能会出现报错，提示某些符号找不到(主要是提示scala代码里声明的类找不到)，但是在 neo4j 目录下运行 <code>mvn clean</code> 之后，再用 IDEA 编译运行，就不报错了。</p><p>有时候还会提示找不到某些类，解决办法，通过搜索找到该类所在的文件，发现该文件左(右)下角有个黄(红)色的j，如果是这样，那么在 file 里打开project structure 找到 modules，找到该文件对应的 modules 其中有个 sources，点击右边第一个×，然后点击下面的 add content root 按钮，重新选择该 modules 的代码。</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;这里主要介绍 neo4j 的源码安装，在 IDEA 中修改和启动。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Neo4j" scheme="http://cighao.com/tags/Neo4j/"/>
    
  </entry>
  
  <entry>
    <title>matlab 画图（十）： 分组和堆叠的条形图</title>
    <link href="http://cighao.com/2019/01/13/draw-picture-with-matlab-010-group-and-stack-bar/"/>
    <id>http://cighao.com/2019/01/13/draw-picture-with-matlab-010-group-and-stack-bar/</id>
    <published>2019-01-13T08:20:22.000Z</published>
    <updated>2019-05-16T05:47:31.846Z</updated>
    
    <content type="html"><![CDATA[<p>可以通过在Y数据中添加零行来自行完成,无论您希望将条组分开,然后相应地修改x轴 tick marks 和 tick labels.这是一个例子：</p><p><a href="https://codeday.me/bug/20190119/550326.html" target="_blank" rel="noopener">https://codeday.me/bug/20190119/550326.html</a></p><a id="more"></a><figure class="highlight matlab"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">Y = [<span class="number">1</span> <span class="number">2</span> <span class="number">3</span>; ...  <span class="comment">%# Sample data</span></span><br><span class="line">        <span class="number">2</span> <span class="number">3</span> <span class="number">4</span>; ...</span><br><span class="line">        <span class="number">3</span> <span class="number">4</span> <span class="number">5</span>; ...</span><br><span class="line">        <span class="number">4</span> <span class="number">5</span> <span class="number">6</span>; ...</span><br><span class="line">        <span class="number">5</span> <span class="number">6</span> <span class="number">7</span>; ...</span><br><span class="line">        <span class="number">6</span> <span class="number">7</span> <span class="number">8</span>; ...</span><br><span class="line">        <span class="number">7</span> <span class="number">8</span> <span class="number">9</span>; ...</span><br><span class="line">        <span class="number">8</span> <span class="number">9</span> <span class="number">10</span>; ...</span><br><span class="line">        <span class="number">9</span> <span class="number">10</span> <span class="number">11</span>];</span><br><span class="line">newY = <span class="built_in">reshape</span>([<span class="built_in">reshape</span>(Y,<span class="number">3</span>,[]); <span class="built_in">zeros</span>(<span class="number">1</span>,<span class="built_in">numel</span>(Y)/<span class="number">3</span>)],[],<span class="number">3</span>)  <span class="comment">%# Add zeroes</span></span><br><span class="line">                                                             <span class="comment">%# for spacing</span></span><br><span class="line">bar(newY,<span class="string">'stacked'</span>);  <span class="comment">%# Create a stacked histogram</span></span><br><span class="line">set(gca,<span class="string">'XLim'</span>,[<span class="number">0</span> <span class="number">12</span>],<span class="string">'XTick'</span>,<span class="number">2</span>:<span class="number">4</span>:<span class="number">10</span>,<span class="string">'XTickLabel'</span>,<span class="number">1</span>:<span class="number">3</span>);  <span class="comment">%# Modify axes</span></span><br></pre></td></tr></table></figure><p><br></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;可以通过在Y数据中添加零行来自行完成,无论您希望将条组分开,然后相应地修改x轴 tick marks 和 tick labels.这是一个例子：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://codeday.me/bug/20190119/550326.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://codeday.me/bug/20190119/550326.html&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="Matlab" scheme="http://cighao.com/tags/Matlab/"/>
    
      <category term="画图" scheme="http://cighao.com/tags/%E7%94%BB%E5%9B%BE/"/>
    
  </entry>
  
  <entry>
    <title>论文写作常用工具</title>
    <link href="http://cighao.com/2018/11/20/tool-sites-for-writing-papers/"/>
    <id>http://cighao.com/2018/11/20/tool-sites-for-writing-papers/</id>
    <published>2018-11-20T12:20:22.000Z</published>
    <updated>2018-12-18T01:02:42.215Z</updated>
    
    <content type="html"><![CDATA[<p>1.将jpg文件转换为eps文件：</p><p><a href="http://www.tlhiv.org/rast2vec/" target="_blank" rel="noopener">http://www.tlhiv.org/rast2vec/</a><br><a href="https://image.online-convert.com/convert-to-eps" target="_blank" rel="noopener">https://image.online-convert.com/convert-to-eps</a></p><a id="more"></a><p>2.LaTeX下面如何画图</p><p><a href="http://pgfplots.sourceforge.net/" target="_blank" rel="noopener">http://pgfplots.sourceforge.net/</a><br><a href="http://pgfplots.sourceforge.net/gallery.html" target="_blank" rel="noopener">http://pgfplots.sourceforge.net/gallery.html</a><br><a href="http://pgfplots.sourceforge.net/pgfplots.pdf" target="_blank" rel="noopener">http://pgfplots.sourceforge.net/pgfplots.pdf</a></p><p>3.pdf在线操作，合并、拆分、压缩等</p><p><a href="https://www.ilovepdf.com/" target="_blank" rel="noopener">https://www.ilovepdf.com/</a><br><a href="https://smallpdf.com/cn/" target="_blank" rel="noopener">https://smallpdf.com/cn/</a></p><p>4.设计表格自动生成 latex 代码</p><p><a href="https://www.tablesgenerator.com/" target="_blank" rel="noopener">https://www.tablesgenerator.com/</a></p><ol start="5"><li>latex 表格画法</li></ol><p><a href="https://blog.csdn.net/juechenyi/article/details/77116011" target="_blank" rel="noopener">https://blog.csdn.net/juechenyi/article/details/77116011</a><br><a href="http://blog.sina.com.cn/s/blog_5e16f1770100u40t.html" target="_blank" rel="noopener">http://blog.sina.com.cn/s/blog_5e16f1770100u40t.html</a></p><ol start="6"><li>poster 模版</li></ol><p><a href="https://www.posterpresentations.com/free-poster-templates.html" target="_blank" rel="noopener">https://www.posterpresentations.com/free-poster-templates.html</a><br><a href="https://www.makesigns.com/SciPosters_Templates.aspx" target="_blank" rel="noopener">https://www.makesigns.com/SciPosters_Templates.aspx</a></p><ol start="7"><li>latex 资源</li></ol><p><a href="http://www.latexstudio.net" target="_blank" rel="noopener">http://www.latexstudio.net</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;1.将jpg文件转换为eps文件：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.tlhiv.org/rast2vec/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.tlhiv.org/rast2vec/&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://image.online-convert.com/convert-to-eps&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://image.online-convert.com/convert-to-eps&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="Tools" scheme="http://cighao.com/tags/Tools/"/>
    
  </entry>
  
  <entry>
    <title>Openstack Swift学习(八)：配置ntp</title>
    <link href="http://cighao.com/2018/09/29/openstack-swift-study-08-configure-ntp/"/>
    <id>http://cighao.com/2018/09/29/openstack-swift-study-08-configure-ntp/</id>
    <published>2018-09-29T09:20:22.000Z</published>
    <updated>2018-09-29T09:48:16.896Z</updated>
    
    <content type="html"><![CDATA[<p>openstack swift 对各个节点的时钟同步有着较强的要求，所以需要在系统中配置时钟同步。</p><a id="more"></a><h2 id="1-选择一台主机作为服务器，配置-ntp"><a href="#1-选择一台主机作为服务器，配置-ntp" class="headerlink" title="1.选择一台主机作为服务器，配置 ntp"></a>1.选择一台主机作为服务器，配置 ntp</h2><p><strong>1.1 安装</strong><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yum install -y ntp</span><br></pre></td></tr></table></figure></p><p><strong>1.2 编辑 /etc/ntp.conf </strong> </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line">#服务默认拒绝所有NTP连线</span><br><span class="line">restrict default kod nomodify notrap nopeer noquery</span><br><span class="line">#拒绝IPV6所有NTP连线</span><br><span class="line">restrict -6 default kod nomodify notrap nopeer noquery</span><br><span class="line"></span><br><span class="line">#示允许本机访问  </span><br><span class="line">restrict 127.0.0.1</span><br><span class="line">restrict -6 ::1                     </span><br><span class="line"></span><br><span class="line">#允许192.168.0.0/24 网段的主机来进行对时,不允许客户端来修改,登录ntp服务器</span><br><span class="line">restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap    </span><br><span class="line"></span><br><span class="line">#server 0.centos.pool.ntp.org</span><br><span class="line">#server 1.centos.pool.ntp.org</span><br><span class="line">#server 2.centos.pool.ntp.org</span><br><span class="line">#server 3.centos.pool.ntp.org</span><br><span class="line"></span><br><span class="line">server 1.cn.pool.ntp.org</span><br><span class="line">server 2.cn.pool.ntp.org prefer    #prefer优先使用</span><br></pre></td></tr></table></figure><p><strong>1.3 同步更新hwclock</strong></p><p>编辑 /etc/sysconfig/ntpd:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">SYNC_HWCLOCK=yes</span><br></pre></td></tr></table></figure></p><p><strong>1.4 启动</strong><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo systemctl restart ntpd.service</span><br></pre></td></tr></table></figure></p><p><strong>1.5 加入开机启动</strong><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo chkconfig ntpd on</span><br></pre></td></tr></table></figure></p><h2 id="2-客户端同步时间"><a href="#2-客户端同步时间" class="headerlink" title="2. 客户端同步时间"></a><strong>2. 客户端同步时间</strong></h2><p><strong>2.1 同步</strong><br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ntpdate 192.168.0.128</span><br></pre></td></tr></table></figure></p><p><code>192.168.0.128</code> 是搭建 ntp 服务的机器的 ip。</p><p><strong>2.2 加入任务计划</strong></p><p>每天凌晨一点同步：</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">crontab -e  </span><br><span class="line">0 1 * * * sudo ntpdate 192.168.0.128</span><br></pre></td></tr></table></figure><p><br></p><h2 id="Reference"><a href="#Reference" class="headerlink" title="Reference"></a><strong>Reference</strong></h2><p><a href="http://blog.51cto.com/msiyuetian/1712561" target="_blank" rel="noopener">http://blog.51cto.com/msiyuetian/1712561</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;openstack swift 对各个节点的时钟同步有着较强的要求，所以需要在系统中配置时钟同步。&lt;/p&gt;
    
    </summary>
    
    
      <category term="openstack swift" scheme="http://cighao.com/tags/openstack-swift/"/>
    
      <category term="分布式存储" scheme="http://cighao.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E5%AD%98%E5%82%A8/"/>
    
      <category term="对象存储" scheme="http://cighao.com/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/"/>
    
  </entry>
  
</feed>
