索引的创建与使用:
1,在用于where判断order排序和join的(on)、group by的字段上创建索引
2,索引的根数不要过多——浪费空间,更新变慢
3,过长的字段,建立前缀索引
4,区分度低的字段,例如性别,不要建索引
5,频繁更新的值,不要作为主键或者索引——页分裂
6,随机无需的值,不建议作为索引,例如身份证,UUID——无序,分裂
7,组合索引把散列性高(区分度高)的值放在前面
8,创建复合索引,而不是修改单列索引
七、用不到索引的几种情况
1,索引列上使用函数(repalce\substr\concat\sum count avg)、表达式计算
(±*/)
2,字符串不加引号,出现隐式转换
3,like条件中前面带%
Where条件中 like abc%, like %2673%, like %888都用不到索引吗?
4,负向查询
NOT LIKE 不能:
! = (<>) 和 NOT IN在某些情况下可以:
八、事务的特性
事务的特性分为
原子性:undo log roll back
隔离性:基于并发控制的锁+MVCC存储(多版本并发控制)
持久性:redo log(crash-safe) 双写缓冲(Double buffer)
一致性:上边的原子性,隔离性,持久性都是为了一致性
事务并发带来的问题:
事务并发的问题:
1,脏读
2,不可重复度
3,幻读
事务隔离级别:
读取未提交
读取已提交
可以重复读
序列化