一.存储引擎










二.索引


1.结构






2.分类



回表查询指的是先走二级索引找到对应的主键值,再根据主键值再到聚集索引当中拿到这一行的行数据。


3.语法

4.SQL性能分析


如果有简单的sql语句却耗时大量的时间,我们便可以通过profile来查看详细的情况。




当我们在进行sql优化的时候,尽量把type向前优化,null是指没有查询到任何东西,效率最高,system是指查询系统表,const是指查询唯一性索引,ref是指查询非唯一性索引,all是全表扫描,性能最低,index是指用了索引,但是也会对索引进行扫描,遍历整个索引数,性能也不是特别高

5.索引使用规则

索引使用的规则:


以上两个索引规则都是联合索引的使用规则。





走索引还是全表扫描取决于数据的分布,如果查询的是极少部分数据或者少部分数据,就会走索引,如果查询的是大部分数据或者全表,就走全表扫描。

sql提示就是我们人为的去告诉mysql使用索引的情况。




使用前缀索引降低索引的体积,降低空间,减少磁盘io。


创建联合索引要考虑字段的顺序,因为要满足最左前缀法则,最左边的字段一定要有。
6.索引设计原则

三.SQL优化
1.insert优化


想要大批量插入需要作上述的操作才可以。
主键顺序插入的性能大于乱序插入。
2.主键优化



页分裂比较的消耗性能


修改主键会涉及到索引结构的修改,引起不必要的麻烦。
主键长度过长在检索时会浪费磁盘io。
3.order by 优化



4.group by优化

5.limit分页优化

6.count优化


7.update优化

执行update语句的where条件尽量加上索引,否则就会从行锁变成表锁,并且这个索引不能失效,否则也会升级为表锁,从而导致并发性能降低。

四.视图





五.存储过程


1.基本语法



2.变量



3.if判断

4.参数

5.case语句

6.循环



7.游标


六.存储函数

七.触发器



八.锁
1.概述


2.全局锁




3.表级锁






4.行级锁





九.存储引擎
1.逻辑存储结构

2.架构








3.后台线程

4.事务原理




5.MVCC(多版本并发控制)



隐藏主键不是每一张表都有的。





十.MYSQL管理
1.系统数据库

2.常用工具






1229

被折叠的 条评论
为什么被折叠?



