MySQL
2020-11-23 10:30:50 0 举报
AI智能生成
登录查看完整内容
MySQL知识点
作者其他创作
大纲/内容
4.事务
ACID
原子性
一致性
隔离性
执行性
隔离级别
读未提交
读已提交
可重复度(默认)
序列化的
隔离级别带来的问题
脏读
不可重复读
幻读
Redo Log
持久化产物
Redo Buffer
Redo lgo时机
日志安全策略
0: 每秒刷盘
1: 每次提交刷盘
2: 每次提交buffer->log,每秒log-> disk
配置文件地址
Undo log
事务原子性的产物
Undo buffer
数据版本链
purge后台线程清理旧的数据版本
MVCC
ReadView概念
每个普通读都会生成一个ID
可重复读
每个事务产生一个ID
记录隐藏字段
txr_id
新增或修改事务ID
roll_pointer
删除记录事务ID
快照读
普通的读都是快找读
什么是普通读
什么是非普通读
基于undo log的数据版本链
5.锁
表锁
IS
IX
行锁
S
X
Next-key
Gap
Record
AUTO_INC锁
6.优化
Mysql缓存配置
innodb buffer...
日志配置
slow_query
bin log
表设计
范式
1NF
2NF
3NF
合适的字段
适当的冗余
逻辑的外键关联
库、表、字段命名规范
字段个数限制,不要太多
主键自增
索引设计
索引不要过多
不要在离散型小的列建立索引
不要在更新频繁的列建立索引
查询优化
Explain使用
ID
Select_type
possiable_key 和 key 和 key_len
rows
Extra
不要select *
索引列不要使用函数
属性隐私转换无法使用
不要反向查询
not in
<>
or
覆盖索引
最左匹配
MySQL
1.架构体系
连接器
缓存
语法解析器
优化器
存储引擎
文件系统
2.存储引擎
种类
CSV
Archive
Memory
Myisam
InnoDB
区别
CSV列不能为空
Archive只允许insert和select
Memory内存数据
Myisam支持表锁
InnoDB功能最强大
应用场景
CVS用户CSV格式文件数据的入库,flush table xx即可
Menory少量常量的数据
Myisam 5.5以前默认
InnoDB支持行锁、事务、mvcc
3. 索引
索引概念
avl、rb-tree、b-tree、b+tree、hash
算法区别
MySQL采用的算法
聚集索引 和 非聚集索引
b-tree 和 b+tree索引
b-tree
每个节点携带数据
I/O不稳定
范围查找需来回遍历b-tree索引
b+tree
只在叶子节点上才有数据
叶子节点使用链表形式关联,范围查找方便
I/O稳定
引擎的实现
文件
.frm
.myd
.myi
聚集索引
叶子节点是具体数据的物理地址
非聚集索引
.ibd
叶子节点是具体数据
叶子节点引用聚集索引的叶子节点
0 条评论
回复 删除
下一页