1/mysql 的逻辑分层
2/引擎层:
innodb : 默认引擎 事务优先 适合高并发 行锁
myisam : 性能优先 表锁
查询语句:show engines
3/sql 解析过程
4/索引图解 索引默认是B树结构
三层B树示意图
5/索引
优势:1/降低io使用率提高查询效率
2/降低CPU使用率(order by B树索引本身已经排好序了)
弊端:1/索引本身很大
2/不适用情况:数据量小 经常更新的数据 很少使用的数据
3/将降低增删改的效率
索引分类:
单值索引:单列 一个表可以有多个单列索引
唯一索引:不能重复 比如id 可以为null
主键索引:不能重复 比如id 不可以为null
复合索引:多个列够成的索引
创建查询删除索引:
6/sql优化
sql 前加 explain
id: 编号
id相同:从上到下顺序执行 减少笛卡尔积中间数值
id不同:先执行由大到小执行
id有相同有不同 大-->小 形同的 上-->下顺序执行
select_type:查询类型
type:索引类型