超详细的MySQL知识点汇总
2021-11-02 15:32:32 100 举报
AI智能生成
超详细的MySQL知识点汇总
作者其他创作
大纲/内容
特点
SQL 走 MyISAM 中索引时的流程
MyISAM
SQL 走 InnoDB 中索引时的流程
使用建议
InnoDB
区别
常见的MySQL存储引擎
二叉树
红黑树
优点
缺点
Hash
B-Tree
为什么使用B+树而非B树
B+Tree
索引的数据结构
索引查询时MySQL的优化
聚簇/集索引
非聚簇/集索引
是否聚簇分
普通索引
唯一索引
主键索引
索引结构
最左前缀原则
复合索引
全文索引
按类型分
索引种类
关于索引的 SQL 优化相关建议
减少访问量
减少计算操作
SQL优化原则
联合索引第一个字段用范围不会走索引
in和or在表数据量比较大的情况会走索引,在表记录不多的情况下会选择全表扫描
like xx% 无论数据量多少一般情况都会走索引
索引下推
MySQL 如何选择索引
案例
总结
单路排序
双路排序
文件排序
Order by与Group by优化
根据自增且连续的主键排序的分页查询
根据非主键字段排序的分页查询
分页查询优化
嵌套循环连接 Nested-Loop Join(NLJ) 算法
基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法
两种算法
优化建议
join关联查询优化
in和exsits优化
四种方式
效率对比
count查询优化
常见SQL的深入优化
索引优化实例
代码先行,索引后上
联合索引尽量覆盖条件
不要在小基数字段上建立索引
尽量对字段类型较小的列设计索引
长字符串可以采用前缀索引
where 与 order by 冲突时优先 where
基于慢SQL查询做优化
索引设计原则
索引
作用
id
select_type
table
type
possible_keys
key
key_len
ref
rows
Extra
partitions
filtered
Explain 中的列
Explain
MySQL中的事务是什么
原子性(Atomicity)
一致性(Consistent)
隔离性(Isolation)
持久性(Durable)
ACID属性
脏写/更新丢失(Lost Update)
脏读(Dirty Reads)
不可重读(Non-Repeatable Reads)
幻读(Phantom Reads)
并发事务带来的问题
读未提交(Read uncommitted)
读已提交(Read committed)
可重复读(Repeatable read)
可串行化(Serializable)
事务的隔离级别
不同隔离级别解决的事务问题
事务
数据库中的锁是什么
乐观锁
悲观锁
性能上
读锁(共享锁,S锁(Shared))
写锁(排它锁,X锁(eXclusive))
操作类型上
表锁
行锁
间隙锁(Gap Lock)
临键锁(Next-key Locks)
数据操作粒度上
分类
MyISAM 和 InnoDB 加锁对比
锁情况分析
锁优化建议
锁
MySQL事务与锁
实现原理
undo 日志版本链
read view
版本链对比规则
MVCC(多版本并发控制)机制
原理
BufferPool 缓存机制
两种机制
常用命令
长连接问题
SQL执行过程
鸡肋的MySQL查询缓存
MySQL连接过程
MySQL优化器与执行计划
词法分析器原理
查询优化器
MySQL内部组件结构
SQL执行顺序
数值类型
日期和时间
字符串
MySQL数据类型选择
其他
MySQL
0 条评论
回复 删除
下一页