类加载过程
加载:查询并加载二进制
验证:验证类是否加载正确
准备:为静态变量分配内存,初始化默认值
解析:将符号引用转换为直接引用
初始化:父类静态变量、静态块-》子类静态变量、静态块-》父类成员变量、代码块-》子类成员变量、代码块-》父类构造方法-》子类构造方法
静态变量和静态块只初始化一次
自增操作
回表查询 (索引失效)
- like前模糊查询
- 范围匹配,where col > 3,使用not或!=
- where条件左边使用函数
- in子表查询
- 联合索引没有从最左匹配,如(a、b、c索引)查询b、c
- or语句前后没有同时使用索引,当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效
- 查询字段数据类型不一致出现隐式转换,如字符串数字没有加双引号, (本身是int,加上双引号还是可以走索引)
- 使用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