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