hash索引和b+tree索引区别

hash索引只能等值查询,无法进行范围查询
hash索引无法索引自动排序
hash索引键值重复严重效率变得很低
hash索引无法使用做匹配前缀原则

B+Tree数据叶子结点数据存储

B+Tree叶子节点可以存储整行的数据,也可以存储主键索引。存储整行数据表示是主键索引。存储主键索引值表示是非主键索引。非主键索引查找数据需要先找到主键索引再根据主键索引查询数据。这个过程叫做回表。覆盖索引查询数据不需要回表。联合索引就是覆盖索引的一种。比如建了一个联合索引index(key1,key2,key3),那么可以同时有三种索引,分别是index(key1), index(key1,key2)和index(key1,key2,key3)。创建联合索引需要注意字段顺序,排顺序的规则是where子句中最常用字段放在前面。

G1与CMS区别

  1. CMS只适合年老代,因为CMS只有在fullGC时候会压缩内存。新生代产生无法接受该算法产生的碎片垃圾。
  2. G1适合年老代同时适合年轻代,它会把存活的数据从一个区域复制到另一个区域并且进行压缩,没有内存碎片。因为G1是基于区域的,会记录那个区域活跃度更低,会把活跃度低的放到一个集合里。回收的时候根据用户设置的期望停顿时间来决定回收哪些区域