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

相关推荐
九河云5 小时前
华为云 DRS 数据复制服务:数据库无缝迁移上云的零停机实践
大数据·数据库·华为云
姓蔡小朋友5 小时前
MySQL多表查询
数据库·mysql
IT19955 小时前
MySQL运维笔记-一种数据定期备份的方法
运维·笔记·mysql
云飞云共享云桌面5 小时前
SolidWorks服务器怎么实现研发软件多人共享、数据安全管理
java·linux·运维·服务器·数据库·自动化
Elastic 中国社区官方博客5 小时前
Elasticsearch:使用 ES|QL 与 dense_vector 字段
大数据·数据库·人工智能·sql·elasticsearch·搜索引擎·全文检索
Channing Lewis5 小时前
mysql.connector.errors.OperationalError: 1040 (08004): Too many connections
数据库·mysql·adb
数据知道6 小时前
一文掌握向量数据库Chroma的详细使用
数据库·python·向量数据库
虹科网络安全6 小时前
艾体宝洞察 | Redis vs Valkey:解决 ElastiCache 的无序扩张与资源效率问题
数据库·redis·spring
weixin_439706256 小时前
Windows MySQL的主从复制配置记录
windows·mysql·adb