mysql学习笔记

1/mysql 的逻辑分层


mysql逻辑分层.png

2/引擎层:
innodb : 默认引擎 事务优先 适合高并发 行锁
myisam : 性能优先 表锁
查询语句:show engines


mysql原理.png

3/sql 解析过程
sql解析过程.png

4/索引图解 索引默认是B树结构


索引图解.png

三层B树示意图
三层B树示意图.png

5/索引
优势:1/降低io使用率提高查询效率
2/降低CPU使用率(order by B树索引本身已经排好序了)
弊端:1/索引本身很大
2/不适用情况:数据量小 经常更新的数据 很少使用的数据
3/将降低增删改的效率

索引分类:
单值索引:单列 一个表可以有多个单列索引
唯一索引:不能重复 比如id 可以为null
主键索引:不能重复 比如id 不可以为null
复合索引:多个列够成的索引

创建查询删除索引:


创建索引语句.png

查询与删除索引.png

6/sql优化
sql 前加 explain

explain各个字段解释.png

id: 编号
id相同:从上到下顺序执行 减少笛卡尔积中间数值
id不同:先执行由大到小执行
id有相同有不同 大-->小 形同的 上-->下顺序执行


数据少的表优先查询.png

select_type:查询类型


select_type解释.png

type:索引类型


type解释.png

索引类型2.png

type3.png

type4.png

索引2.png

explain.png

你可能感兴趣的:(mysql学习笔记)