Mysql 重点知识归纳总结 - 面试必备

三范式的好处:数据不会有冗余,更新操作只需要单表操作

第一范式(1NF):列是原子的,不能再拆分成其他几列

第二范式  (2NF):必须有一个主键,包含在主键中列必须完全依赖于主键,不能只依赖于主键的一部分。

第三范式 (3NF): 非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况

事务(ACID):一组操作,要么都执行,要么都不执行。

原子性,一致性,隔离性,持久性

InnoDB事务实现原理:

Redo log(重做日志) 保证 持久性

Undo log(回滚日志)保证 原子性

锁机制,MVCC 等保证 隔离性

MVCC: 多版本并发控制,实际上就是保存了数据在某个时间节点的快照

锁的类型:共享锁和排他锁,也叫做读锁和写锁

读锁是共享的,可以通过lock in share mode实现,这时候只能读不能写。

写锁是排他的,它会阻塞其他的写锁和读锁。从颗粒度来区分,可以分为表锁和行锁两种。

InnoDB:支持事务,表级锁 + 行级锁,支持外键

MyISAM:不支持事务,表级锁,不支持外键

并发事务带来的问题:脏读,丢失修改,不可重复读,幻读

不可重复读和幻读的区别:不可重复读是多次读取一条记录值被修改幻读是多次读取一条记录发现记录增多或减少

事务隔离级别:

读取未提交:READ-UNCOMMITTED

读取已提交:   READ-COMMITTED

可重复读: REPEATABLE-READ

可串行化:SERIALIZABLE

聚集索引(主键):索引结构和数据一起存放

非聚集索引(二级索引):索引结构和数据分开存放(可能回表)

覆盖索引 : 即需要查询的字段正好是索引的字段,那么直接根据该索引,就可以查到数据了, 而无需回表查询。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值