类加载过程

加载:查询并加载二进制
验证:验证类是否加载正确
准备:为静态变量分配内存,初始化默认值
解析:将符号引用转换为直接引用
初始化:父类静态变量、静态块-》子类静态变量、静态块-》父类成员变量、代码块-》子类成员变量、代码块-》父类构造方法-》子类构造方法
静态变量和静态块只初始化一次

自增操作

image.png

回表查询 (索引失效)

  1. like前模糊查询
  2. 范围匹配,where col > 3,使用not或!=
  3. where条件左边使用函数
  4. in子表查询
  5. 联合索引没有从最左匹配,如(a、b、c索引)查询b、c
  6. or语句前后没有同时使用索引,当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效
  7. 查询字段数据类型不一致出现隐式转换,如字符串数字没有加双引号, (本身是int,加上双引号还是可以走索引)
  8. 使用is null 或 is not null

参考:https://blog.csdn.net/u012060033/article/details/122544952

b树和b+树的区别

b+树只在叶子节点存储数据,所以在非叶子节点上可以存储更多的key,树深度更低,查找io次数更少;
而且存储数据都在叶子节点,数据顺序排列且相连,便于区间查找和搜索
参考:https://blog.csdn.net/weixin_43256529/article/details/111730659