MYSQL
2023-06-08 17:40:14 6 举报
AI智能生成
MYSQL脑图梳理
作者其他创作
大纲/内容
MYSQL
数据查询语言
DQL
数据定义语言
DDL
数据操纵语言
DML
数据控制语言
DCL
关系型数据库
information_schema
performance_schema
系统库
Threads_cached
Threads_connected
Threads_created
Threads_running
SHOW FULL PROCESSLIST
线程配置
同步
长链接
链接数:max_connections:151
超时时间:waittimeout
链接
1查询缓存(默认关闭)
词法解析
语法解析
提高性能
防止SQL注入
PREPARE
语法解析和预处理
优化成本模型
optimizer_prune_level变量
optimizer_search_depth变量
控制查询计划评估
Switchable Optimizations:可切换优化
Index Hints:索引提示
优化器
EXPLAIN
执行器
执行计划
InnoDB
空间占有小
表锁
MYISAM
表类型
存储引擎
结构
连接层
服务层
存储层
分层
架构
16K
page
缓存池 buffer pool
刷脏(异步)
随机IO/顺序IO
物理
REDO LOG
逻辑
UNDO LOG
预读取
buffer pool
LRU
change buffer
redo log buffer
内存结构
系统表空间
磁盘结构
数据读取
线性预读
随机预读
预读机制
页面加载机制
已改动还没同步
脏页
没使用
空白页
未改动
干净页
页
创建一个存储脏页的链表,凡是被修改过的缓冲页对应的控制块都会作为节点加入到这个链表中。该链表也被称为flush链表。
FUlsh链表
正常关闭
系统任务空闲时
redolog自适应
时机
刷脏
缘由:异步刷盘时出问题进行备份
双写缓存区:脏页写入缓存池时也要写到双写缓存区
双写缓存
数据同步机制
内存与磁盘交互机制
InnDB架构
B+ 树的阶数等于键值数量
树的叶子节点中的索引数据是按顺序排列的
叶子节点间是通过双向链表进行连接
稳定
B+结构
默认主键
非空唯一索引
rowid(没有索引)
clustered index
当前索引+主键索引排序字段
单例二级索引
最左原则
联合二级索引
二级索引
查询的数据全部在二级索引树
覆盖索引
主键索引的排序字段去主键索引拿到响应的数据
回表
不是越多越好:维护索引树,占空间
主键一定要设计趋势增加
跟目录能放数据:page/根目录大小
能放多少数据
索引列不独立
使用了左模糊
使用or查询的部分字段没有索引
字符串条件未使用 ’ ’ 引起来
不符合最左前缀原则的查询
索引失效
作用在二级索引
索引下推
log_output
慢查
索引优化
SQL执行的顺序的标识
id
select_type
那张表的
table
访问类型
type
mySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用
possible_keys
key列显示MySQL实际决定使用的键(索引)
Key
索引中使用的字节数,可通过该列计算查询中使用的索引的长度
key_len
表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值
ref
表示MySQL根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数
rows
Using where:列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的
Using temporary:表示MySQL需要使用临时表来存储结果集,常见于排序和分组查询
Using filesort:MySQL中无法利用索引完成的排序操作称为“文件排序”
包含MySQL解决查询的详细信
Extra
explain
z执行计划
表示的是查询符合条件的列的值不为NULL的行数
COUNT(字段)
示的是直接查询符合条件的数据库表的行数
COUNT(常量)
SQL92定义
COUNT(*)
COUNT
索引
磁盘数据
使用场景
undo log
原子性
锁
MVCC
隔离性
redo log
持久性
一致性
四大特性
在同一事务中第二读和第一次读的结果不一致读到插入的数据
幻读
其他事务读到我还没有提交的事务
脏读
在同一事务中第二次读和第一次读的结果不一致
不可重复读
并发三大问题
RU
RC
RR
串性
事务隔离级别
一个事务可看到的数据版本
一个事务不可看到的数据版本
read view 事务ID和行的DB_TRX_ID进行比较
判读规则
RR是第一次建立
RC每次都建立
一致性视图(read view)
DB_ROW_ID:行标识
DB_TRX_ID:更改最后的事务id
innodb行标识
事务
粒度
效率
冲突概率
并发性能
行锁/表锁
S/读锁
共享锁
X/写锁
排他锁
行锁
研究意义
意向锁
记录锁
索引的已有数据决定加锁范围
间隙锁
临间锁
锁范围
非锁定一致性读取
锁定一致性读取
一致性读取
FULL_PROCESSLIST
threads
锁的是索引
引言字数稍多于摘要,不要与摘要雷同
0 条评论
回复 删除
下一页