0%

CMS

CMS(Concurrent Mark Sweep)收集器是以获取最短回收停顿时间为目标的收集器。(希望系统停顿时间尽可能短,以给用户带来良好的体验)

阅读全文 »

垃圾回收基础

判断对象存活算法(哪些对象需要回收?)

引用计数法

给对象中添加一个引用计数器,每当一个地方引用它时,计数器的值就+1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。

优点:简单高效

缺点:很难解决出现两个对象之间循环引用的问题。

阅读全文 »

jvm内存结构

运行时数据区域

java7

java8将方法区移出,变为元数据区,放在直接内存中。

阅读全文 »

扩展mysql

什么时候可扩展性?

简要地说,可扩展性表明了当需要增加资源以执行更多工作时系统能够获得划算的等同提升( equal bang for the buck)的能力。

缺乏扩展能力的系统在达到收益递减的转折点后,将无法进一步增长。

阅读全文 »

优化基础_explain详解

explain命令可以帮助我们了解mysql的执行计划,当运行SQL语句时哪种策略预计会被优化器采用。

阅读全文 »

B+树索引

B+树索引类型

聚簇索引

InnoDB存储引擎表是索引组织表,即表中数据按照主键顺序存放。

聚集索引( clustered index)就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页

每个数据页都通过一个双向链表来进行链接。

数据页上存放的是完整的每行的记录,索引页存放的仅仅是键值及指向数据页的偏移量,而不是一个完整的行记录。

聚集索引的存储并不是物理上连续的,而是逻辑上连续的,组织方式如下(物理存储上可以同样不按照主键存储。)

  1. 页通过双向链表链接,页按照主键的顺序排序
  2. 每个页中的记录也是通过双向链表进行维护的
阅读全文 »

索引组织表

在 InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称
索引组织表( index organized table)。

在 InnoDB存储引擎表中,每张表都有个主键( Primary Key),如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下方式选择或创建主键:

  1. 首先判断表中是否有非空的唯一索引( Unique NOT NULI),如果有,则该列即为主键。
  2. 如果不符合上述条件, InnoDB存储引擎自动创建一个6字节大小的指针。

当表中有多个非空唯一索引时, InnoDB存储引擎将选择建表时第一个定义的非空唯索引为主键主键的选择根据的是定义索引的顺序,而不是建表时列的顺序。

阅读全文 »