mysql_day2总结

1进阶-课程介绍

2存储引擎-MySQL体系结构

问题:

1服务层是干嘛的?

2引擎层是干嘛的?

3引擎层和存储层有什么区别?

3存储引擎-简介

4InnoDB简介

问题:

什么是行级别锁?为什么可以提高并发性能?

5MyISAM和Memory

问题:

这三个存储引擎的区别?

6存储引擎的选择

7小结

8MYSQL安装(Linux版本)

08. 进阶-MySQL安装(linux版本)_哔哩哔哩_bilibili

9索引

10索引-结构

11Btree

问题:

Btree树是怎么裂变的?

超过要求之后向上分裂

12B+tree

问题:

B+tree和Btree树的区别?

所有元素都只会出现在叶子节点

13hash

14思考题

15分类

问题:

1聚集索引和二级索引区别?

主要看叶子节点挂载的区别,聚集挂载的是这一行的数据, 二级挂载的是id

2什么是回表查询?

是查询语句现在二级索引的叶子节点处找到id值,然后拿着这个id值去聚集索引里面查询这个行数据就叫回表查询

16思考题

这里面的n表示key数量,(n+1)表示指针数量

17语法

问题:

什么是联合索引?

联合索引 (也叫复合索引 )是数据库中基于多个字段组合创建的索引,而非单一字段。它可以理解为把多个字段的值按顺序拼接后生成的索引结构,用于加速多字段组合条件的查询。

18性能分析-查看执行频次

问题:

global和session有什么区别?

19慢查询日志

问题:

慢查询日志配置在哪里?以及配置什么参数?

20show-profiles

问题:

怎么看profile是开启还是关闭的?

命令: select @@profiling

21explain

问题:

1图一表格每一列代表什么意思?

上面两张图片有介绍

2explain和desc的区别?

22使用规则-验证索引效率

命令后面加\G可以行展示

23最左前缀法则

注意:

这个只关心存在不存在,与索引条件放的位置(顺序)没关系

问题:

那这个该怎么规避?

使用>=或者<=

24索引失效情况一

25索引失效情况二

26SQL提示

问题:

1use index放在语句哪里?

放在from后面

2怎么查看表中有哪些索引?

27覆盖索引&回表查询

问题:

回答上面第二张图片问题?

设计username和password的聚集索引,这样他们的叶子节点存储的就是id值,这样也不会回表查询,效率最高

28前缀索引

其实就是根据第一个select来选择,使用二进制的几次方即可

29单列&联合索引

30设计原则

问题:

是否心中有数?

31索引小结

32SQL优化-插入数据

问题:

1大批量插入数据不理解其步骤及命令操作?

2主键顺序插入为什么性能高于乱序插入?

下一节详细讲解

33主键优化

问题:

1都有什么空间,大小?

表区间,段,区,页,行

2主键设计原则(怎么优化)?

尽量降低主键长度,顺序插入(auto_increment自增主键),尽量不要使用uuid或者其他自然主键,避免对主键的修改

34order by优化

35group by优化

36limit优化

问题:

什么是覆盖索引?

子查询select id from tb_sku order by id limit 2000000,10中,id是主键(默认会有主键索引),而查询字段只有id,此时主键索引就是覆盖索引(因为索引本身包含了查询所需的所有字段)。

37count优化

38update优化(避免行锁升级为表锁)

问题:

update是怎么优化的?

where条件必须是有索引的,并且不能失效

39优化-小结

问题

SQL优化绝大部分都是根据索引进行优化的

40视图-介绍及基本情况

问题:

1可选项[WITH]那里是什么?

下节课讲

2视图的作用是什么?为什么要用视图?

41检查选项(cascaded)

with cascaded check option(级联(向下看))

with local check option

关键:

视图不存储数据,当使用insert时,会将数据存储在视图绑定的表中

另外如果不用with的话where的条件是不做检查的

42检查选项(local)

只看自己本层的条件

43更新及作用

关键

视图中的行必须与表中的商之间存在一对一的关系,就是select不能有上述的函数

44视图-案例

45存储过程-介绍

46基本语法

47变量-系统变量

48用户定义变量

49局部变量

50if判断

51参数(IN,OUT,INOUT)

52case

问题:

if和case的 格式的区别?

if then vs case when then

esleif else

else

end if end case

53循环-while

54循环-repeat

55循环-loop

56游标-cursor

问题:

1游标是解决什么问题的?

解决在存储过程中定义的局部变量只能接收单行单列的问题

2最后一个是null会报错或者插入的问题怎么解决?

下节课会讲

57条件处理程序-handler

问题:

下面图中代码执行流程?

设置一个条件处理程序,当'SQLSTATE'='02000'(这个表示为空(可以替换为not found))时就执行exit退出,在这之前先关闭游标

58 存储函数

问题:

必须加[characteristic]中的三个其中一个

另外,存储函数用的少,因为存储过程可以替代(包含他(inout))他

存储过程和存储函数的区别?

形参不一样; in num int vs num int

59触发器-介绍

问题:

1理解old和new在各种触发器类型中的含义

2什么是行级触发,什么是语句级触发?

举例;执行update语句,影响了5行,update类型触发器执行了5次那就是行级触发器,不管影响了几行都是执行一次触发器,那就是句触发器

60案例1-(insert类型)

61案例2-(update类型)

62案例3-(delete类型)

63视图&存储过程&触发器-小结

问题:

触发器和存储函数的区别?

64锁-介绍

65全局锁

66全局锁-一致性数据备份

问题:

第一张图中三个代码句子是什么?

67表级锁-表锁

68表级锁-元数据锁

69

70

71

72

73

7

7

7

7

7

7

8

8

8

8

8

8

8

8

8

8

9

9

9

9

9

9

9

9

9

9

相关推荐
BOB-wangbaohai1 小时前
软考-系统架构师-数据库系统(二)
数据库·数据分析·软考·系统架构师
冉冰学姐1 小时前
SSM校园人才市场391d8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·开题报告·java 开发·ssm 框架应用
橘橙黄又青2 小时前
redis复习(2)
数据库·redis·缓存
计算机毕设VX:Fegn08958 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Mr__Miss8 小时前
保持redis和数据库一致性(双写一致性)
数据库·redis·spring
Knight_AL9 小时前
Spring 事务传播行为 + 事务失效原因 + 传播行为为什么不用其他模式
数据库·sql·spring
倔强的石头_10 小时前
时序数据时代的“存储与分析困局”解析及金仓解决方案
数据库
计算机毕设VX:Fegn089510 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
倔强的石头_11 小时前
场景化落地指南——金仓时序数据库在关键行业的应用实践
数据库
SelectDB11 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache