一、mysql设计原则
状态应用
ACID特性
- 原子性实现 --undolog
- 一致性实现 --主键约束、外键约束、自定义约束
- 隔离性实现 --默认隔离等级可重复读 mvcc 版本链和readview
- 持久性实现 --redolog
隔离问题
脏读、不可重复读、幻读(读未提交、读已提交、可重复读、幻读)
B+索引和B树索引
- B+聚集索引+双向链表+有序数据
Mysql优化
- 合并组合索引、添加自增主键、最左前缀、减少表关联、缓存热点数据、冗余列
Mysql分布式
- 读写分离 MHA/keeplive
主从同步
- 异步
- 同步
- 半同步