AI
推荐
模板社区
专题
登录
免费注册
首页
思维导图
详情
Mysql
2021-08-19 15:15:37
14
举报
分享方式
免费使用
AI智能生成
Mysql
知识脑图
模版推荐
作者其他创作
大纲/内容
Mysql架构
查询sql的执行流程<br>
通信协议
Unix Socket<br>
TCP/IP协议
Named Pipes
通信方式
半双工
查询缓存
语法解析器
预处理
优化器
执行计划
执行引擎
存储引擎
MyISAM<br>
InnoDB<br>
Memory
CSV
Archive
mysql体系结构
模块详解
Connector
Management Serveices & Utilities
Connection Pool
SQL Interface
Parser
Optimizer
Cache and Buffer
Pluggable Storage Engines
架构分层
连接层
服务层
存储引擎层
更新sql的执行流程<br>
Buffer Pool<br>
Buffer Pool
Change Buffer
Adaptive Hash Index
整体流程图
课堂笔记
Mysql索引
索引是什么
定义
是一种数据结构
持久化在磁盘,用于提高查询效率
类型
普通索引
唯一索引
全文索引
索引存储模型推演
二分查找
特点:有序数组,拆半查找
问题:更新需要挪动大量数据,改变index
二叉查找树
特点:左子树所有的节点都小于父节点,右子树所有的节点都大于父节点
问题:查找耗时跟树深度有关,特殊情况斜树<br>
平衡二叉树(AVL)
特点:二叉树特点+左右子树深度差绝对值不能超过 1
问题:树深度约高,IO次数越多
多路平衡查找树(B树)
特点:分叉数(路数)永远比关键字数多 1
存储:键值、数据地址、节点引用
B+树
特点:1.关键字的数量是跟路数相等 2.根节点和枝节点中都不会存储数据,只有叶子节点才存储数据
2000 万左右的表,查询数据最多需要访问 3 次磁盘
B+树落地
MyISAM
.frm文件
.MYD文件
.MYI文件
课堂笔记图解
InnoDB
.frm文件
.ibd文件
索引
数据
课堂笔记图解
索引使用原则<br>
列的离散度
联合索引最左匹配原则
覆盖索引
索引条件下推
索引创建
在用于 where 判断 order 排序和 join 的(on)字段上创建索引
索引的个数不要过多
区分度低的字段,例如性别,不要建索引
频繁更新的值,不要作为主键或者索引
组合索引把散列性高(区分度高)的值放在前面
创建复合索引,而不是修改单列索引
过长的字段,怎么建立索引 前缀索引
为什么不建议用无序的值(例如身份证、UUID )作为索引 页分裂
事务与锁
什么是数据库事务<br>
事务定义
事务四大特性
InnoDB事务隔离级别
未提交读(Read Uncommintted)
已提交读(Read Committed)
可重复读(Repeatable Read)<br>
串行化(Serializable)<br>
实现方案
LBCC
锁
MVCC
创建版本号
删除版本号
InnoDB锁的基本类型
锁的粒度
表锁
行锁<br>
共享锁(读锁)<br>
排他锁(写锁)<br>
意向锁
行锁的原理
锁索引
锁的算法
记录锁
间隙锁
临键锁<br>
死锁
锁的释放与阻塞<br>
死锁的发生和检测<br>
查看锁信息(日志)
死锁的避免
性能优化总结
优化思路
连接-配置优化
缓存-架构优化
优化器-sql语句分析与优化<br>
存储引擎选择
收藏
立即使用
Dubbo架构图
收藏
立即使用
chm结构
收藏
立即使用
Kafka架构分析
收藏
立即使用
RabbitMQ架构
肖冬
职业:本科
去主页
Collect
Get Started
MySQL
Collect
Get Started
MYSQL主从复制
Collect
Get Started
Mysql
Collect
Get Started
MySQL高级
评论
0
条评论
下一页
图形选择
思维导图
主题
补充说明
AI生成
修改AI描述
去编辑
重新生成
提示
关闭后当前内容将不会保存,是否继续?
取消
确定
Document