单例 双重检查锁
class Singleton {
private static volatile Singleton instance ;
private Singleton() {}
public static Singleton getInstance(){
if(instance == null) {
synchronized (Singleto.class) {
if(instance == null){
instance = new Singleton() ;
}
}
return instance;
}
}
什么是覆盖索引
查询使用了索引 并且需要返回的列 在该索引中已经全部能够找到
(覆盖的意思 就是有索引 比如a不是索引 要查a的信息 就不能算是覆盖索引)
并发事务带来的问题
脏读
一个事务读到另一个事务还没有提交的数据
不可重复读
一个事务先后读到的数据不一样
幻读
一个事务按照条件查询数据时 没有对应的数据
但是插入的时候 又发现这行数据已经存在 好像出现了幻影
隔离级别(未提交读 读已提交 可重复读 串行化)
串行化 虽然全部解决 但是效率比较低 几乎放弃了并发