mysql知识点
2023-01-11 10:55:05 0 举报
AI智能生成
为你推荐
查看更多
mysql知识点
作者其他创作
大纲/内容
二叉树
红黑树
hash
B-Tree
B+Tree
类型
聚集(叶子节点包含完整的数据记录)
Innodb
非聚集(索引文件和数据分离)
MyISam
引擎
索引
id
select_type
table
type
possible_keys
key
key_len
ref
rows
extra
explain
mysql内部组件
内部组件结构
binlog归档
trace工具分析
MySQL支持两种方式的排序filesort和index,Using index是指MySQL扫描索引本身完成排序。index 效率高,filesort效率低
order by满足两种情况会使用Using index。 1) order by语句使用索引最左前列。 2) 使用where子句与order by子句条件列组合满足索引最左前列。
尽量在索引列上完成排序,遵循索引建立(索引创建的顺序)时的最左前缀法则。
如果order by的条件不在索引列上,就会产生Using filesort。
能用覆盖索引尽量用覆盖索引
group by与order by很类似,其实质是先排序后分组,遵照索引创建顺序的最左前缀法则。对于group by的优化如果不需要排序的可以加上order by null禁止排序。注意,where高于having,能写在where中 的限定条件就不要去having限定了。
总结
单路排序
双路排序
filesort文件排序
代码先行,索引后上
联合索引尽量覆盖条件
不要在小基数字段上建立索引
长字符串我们可以采用前缀索引
where与order by冲突时优先where
基于慢sql查询做优化
索引设计原则
根据自增且连续的主键排序的分页查询
非主键子段排序的分页查询
分页优化
嵌套循环链接Nested-loop join(NLJ)
基于块的嵌套循环链接Block Nested-Loop(BNL)
算法
join关联查询优化
in和exsits优化
count(*)优化
场景优化
mysql优化
原子性(Atomicity)
一致性(Consistent)
隔离型(Lsolation)
持久性(Durable)
属性
脏读
不可重复读
幻读
问题
读未提交
读已提交
可重复读
串性化
级别
隔离级别
事务
乐观锁
悲观锁
性能
读锁(共享锁,S锁Shared)
写锁(排他锁,X锁eXclusive)
操作
表锁
行锁
粒度
分类
间隙锁(Gap Lock)
临建锁(Next-key Locks)
锁
MVCC机制
缓存机制
BufferPool缓存机制
mysql
0 条评论
回复 删除
下一页