debug调试Mysql源码

再上一篇的事务隔离级别中说了mysql是通过两个隐藏列来实现的,后来又看了一些相关文章,发现好像和《高性能Mysql》说的有点不一样。mysql的mvcc是通过Read View和
Undo log来实现的,read view来判断数据行是否可读,undo log用来找到最近的可见版本。为了搞清楚内部是如何实现的(虽然不一定看的懂),所以想debug看下read view是如何生成的。

阅读更多

事务的隔离级别

在定义中有四种隔离级别,每一种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。通常来说, 一个事务在最终提交前,对其它事务是不可见的。较低级别的隔离通常可以执行更高的并发,系统的开销也更低。

阅读更多

设计模式之状态模式

状态模式

  我们用饮料贩卖机工作的例子来讲解状态模式的实现。把贩卖机的工作流程分解,可以分为一般为 待售 -> 选择饮料 -> 插入硬币 -> 售出 -> 退出饮料 -> 回到待售状态。

阅读更多

设计模式之迭代器模式

定义

  提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示

  聚合对象 是什么呢?可以看成将多个对象用某种数据结构聚集在一起。可以是一个数组Array,可以是一个列表List,也可以是一个散列表Map。

阅读更多

设计模式之模板方法模式

定义

  在一个方法中定义一个算法的骨架,将一些步骤由子类来实现。模版方法使得子类可以在不改变算法结构的情况下,重复定义算法中的步骤。

阅读更多

React组件生命周期

  React组件的一生主要分为四个阶段分别为初始化(Initialization),挂载(Mounting),更新(Updation),卸载(Unmounting),
下面介绍挂载和更新的一些方法。

阅读更多

git简单使用

git status

查看git状态,如果本地有更改或者新增的文件(或有可执行的操作?)则会显示。并且会提示如何操作。

阅读更多

jvm之运行时数据区

  Java虚拟机运行Java程序时会将所管理的内存分为不同的数据区域。这些区域的作用以及生命周期都不同。有的随虚拟机进程创建而创建,有的则随线程的启动和结束而建立和销毁。下图是 JDK1.7的运行时数据区

阅读更多