Java知识框架 - Mysql
2020-03-09 本文已影响0人
码畜的快乐源泉
- Mybatis
- SqlSource
- MappedStatement
- MappedProxy
- SqlSession
- 事务ACID
- 原子性 (atomicity)
- 一致性 (consistency)
- 隔离性 (isolation)
- 持久性(durability)
- 事务的四种隔离机制
- 读未提交(read uncommited):脏读,不可重复读,虚读都有可能发生
- 读已提交(read commited):避免脏读。但是不可重复读和虚读有可能发生
- 可重复读 (repeatable read):避免脏读和不可重复读。但是虚读有可能发生
- 串行化的 (serializable):避免以上所有读问题
- Mysql 默认:可重复读(主从复制不出问题),Oracle 默认:读已提交
- 事务的七种传播行为
- PROPAGATION_REQUIRED
- PROPAGATION_SUPPORTS
- PROPAGATION_MANDATORY
- PROPAGATION_REQUIRES_NEW
- PROPAGATION_NOT_SUPPORTED
- PROPAGATION_NEVER
- PROPAGATION_NESTED
-
索引结构
image.png
- Myiasm&Innodb
- 聚簇索引保证关键字值相近的元组存储的物理位置也相同 - 一个表只能有一个聚簇索引 - solidDB&InnoDB
- explain
- id
- select_type
- type
- possible_keys
- key
- key_len
- ref
- rows
- Extra
- union&union all - union会自动合并重复结果、union all不会
- char&varchar - 更新多的用varchar,更新少的用char
- 存储过程
- 触发器
- 数据库范式
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- 巴斯-科德范式(BCNF)
- 第四范式(4NF)
- 第五范式(5NF,完美范式)
- 锁机制
- 读锁&写锁
- 表锁&行锁
- 表锁偏向MyISAM存储引擎 - 开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。
- 行锁偏向InnoDB存储引擎 - 开销大,加锁慢,会出现死锁,锁定粒度最小,发生锁冲突的概率最低,并发度也最高。