MySQL 高频面试题目(4)

索引的创建与使用:

1,在用于where判断order排序和join的(on)、group by的字段上创建索引

2,索引的根数不要过多——浪费空间,更新变慢

3,过长的字段,建立前缀索引


MySQL 高频面试题目(4)


4,区分度低的字段,例如性别,不要建索引

5,频繁更新的值,不要作为主键或者索引——页分裂

6,随机无需的值,不建议作为索引,例如身份证,UUID——无序,分裂

7,组合索引把散列性高(区分度高)的值放在前面

8,创建复合索引,而不是修改单列索引


七、用不到索引的几种情况

1,索引列上使用函数(repalce\substr\concat\sum count avg)、表达式计算

(±*/)


MySQL 高频面试题目(4)


2,字符串不加引号,出现隐式转换


MySQL 高频面试题目(4)


3,like条件中前面带%

Where条件中 like abc%, like %2673%, like %888都用不到索引吗?


MySQL 高频面试题目(4)


4,负向查询

NOT LIKE 不能:


MySQL 高频面试题目(4)


! = (<>) 和 NOT IN在某些情况下可以:


MySQL 高频面试题目(4)


八、事务的特性

事务的特性分为

原子性:undo log roll back

隔离性:基于并发控制的锁+MVCC存储(多版本并发控制)

持久性:redo log(crash-safe) 双写缓冲(Double buffer)

一致性:上边的原子性,隔离性,持久性都是为了一致性


事务并发带来的问题:

事务并发的问题:

1,脏读


MySQL 高频面试题目(4)


2,不可重复度


MySQL 高频面试题目(4)


3,幻读


MySQL 高频面试题目(4)


事务隔离级别:

读取未提交

读取已提交

可以重复读

序列化


MySQL 高频面试题目(4)

上一篇:Java高级编程细节-动态代理-进阶高级开发必学技能


下一篇:剑指offer刷题记录 其他、回溯(1)