【黑马程序员】mysql进阶篇笔记

文章详细介绍了MySQL的进阶内容,包括存储引擎(InnoDB、MyISAM、Memory)、索引结构(B+Tree、哈希等)、SQL优化策略、视图、存储过程、触发器、各种锁定机制以及InnoDB引擎的逻辑和架构。
摘要由CSDN通过智能技术生成

2023年10月27日17:50:07
58.01. 进阶-课程介绍(Av765670802,P58)

59.02. 进阶-存储引擎-MySQL体系结构(Av765670802,P59)

60.03. 进阶-存储引擎-简介(Av765670802,P60)

61.04. 进阶-存储引擎-InnoDB介绍(Av765670802,P61)

62.05. 进阶-存储引擎-MyISAM和Memory(Av765670802,P62)

63.06. 进阶-存储引擎-选择(Av765670802,P63)

64.07. 进阶-存储引擎-小结(Av765670802,P64)
分成innodb myISam memory
myISam 读写快,但是不支持事务,想一些评论啥的,可以丢失的非核心业务数据可以用这个村
memory存在内存里面,缓存表什么的。但是一般都被 MongoDB代替了。
65.08. 进阶-MySQL安装(linux版本)(Av765670802,P65)

66.09. 进阶-索引-概述(Av765670802,P66)

67.10. 进阶-索引-结构-介绍(Av765670802,P67)

68.11. 进阶-索引-结构-Btree(Av765670802,P68)

69.12. 进阶-索引-结构-B+tree(Av765670802,P69)
合着B+tree底层是单链表,Mysql innodb对这个结构进行了优化,改成了双向链表。
70.13. 进阶-索引-结构-hash(Av765670802,P70)
hash就是快,但是不能用于范围查找,只能是 = ,in。
71.14. 进阶-索引-结构-思考题(Av765670802,P71)
为什么选B+tree,因为二叉树不平衡,会导致层级过高,搜索变慢。
为什么不用B树,因为它的结构使得 ,一页存储的键值减少,从而指针减少,而且保存了大量数据使得树变高,查询效率变低,
72.15. 进阶-索引-分类(Av765670802,P72)
在这里插入图片描述
在这里插入图片描述
先二级索引(叶子结点挂的是主键值),后聚集索引(叶子结点底下挂的是行数据),叫做回表查询。

73.16. 进阶-索引-思考题(Av765670802,P73)
在这里插入图片描述
三层,2000万数据。
74.17. 进阶-索引-语法(Av765670802,P74)
在这里插入图片描述

75.18. 进阶-索引-性能分析-查看执行频次(Av765670802,P75)

76.19. 进阶-索引-性能分析-慢查询日志(Av765670802,P76)

77.20. 进阶-索引-性能分析-show profiles(Av765670802,P77)

78.21. 进阶-索引-性能分析-explain(Av765670802,P78)
在这里插入图片描述

79.22. 进阶-索引-使用规则-验证索引效率(Av765670802,P79)

80.23. 进阶-索引-使用规则-最左前缀法则(Av765670802,P80)
最左前缀是指 联合索引最左边的索引字段必须存在,与sql编写顺序无关。
">="不失效,“> <”失效
81.24. 进阶-索引-使用规则-索引失效情况一(Av765670802,P81)
索引列运算 失效
字符串索引不加引号 name=123 失效
like "xx%"只有这种不失效
or 连接的两个语句,必须都有索引,才能用起来索引,否则失效
82.25. 进阶-索引-使用规则-索引失效情况二(Av765670802,P82)
数据分布影响,如果用索引比全表查询还要慢,那就全表查询。
is null ,is not null 哪个情况少,哪个就用索引。
83.26. 进阶-索引-使用规则-SQL提示(Av765670802,P83)
from table use/ignore/force index(idx_email_5 ) where xxx
use 我建议,ignore 忽视这个索引,force(就用这个)
84.27. 进阶-索引-使用规则-覆盖索引&回表查询(Av765670802,P84)
通过聚集索引或者二级索引一次就能查到所有的东西叫做覆盖索引。不行就需要回表。
主键聚集索引底下绑的所有数据,当然可以。而二级索引就不行了,如果是单列索引,撑死就是 name,id。
所以就需要建立联合索引,来实现覆盖索引。
85.28. 进阶-索引-使用规则-前缀索引(Av765670802,P85)
大文本字符串,建立索引浪费磁盘体积,涉及大量IO,降低查询速度。
需要考虑前缀的区分度。(一个前缀只对应一条数据,那么区分度就是1)
利用前缀索引
create index idx_email_5 on table(email(5))
查询过程就是,根据前五个字符,定位到二级索引的id,然后在聚集索引那里获取到行数据,之后比较完整的字符串对不对,对了返回,然后继续回二级索引,链表的下一个,比较是不是还是这个前缀,如此。
86.29. 进阶-索引-使用规则-单列&联合索引(Av765670802,P86)
在这里插入图片描述

87.30. 进阶-索引-设计原则(Av765670802,P87)

区分度高,例如身份证号。区分度低,例如性别。。。(之前一直都搞错了,还说索引应该建立在可以最多划分的数据字段上)
在这里插入图片描述
88.31. 进阶-索引-小结(Av765670802,P88)

89.32. 进阶-SQL优化-插入数据(Av765670802,P89)
之前在简历上写的,sql优化,人家问起来,就说加索引。。
合着sql优化还是一个章节。

批量插入
多个插入之后,再统一提交事务
再大就使用 load
100w数据 load 16s,insert 10多分钟。
主键顺序插入,优于乱序插入。
90.33. 进阶-SQL优化-主键优化(Av765670802,P90)

91.34. 进阶-SQL优化-order by优化(Av765670802,P91)

92.35. 进阶-SQL优化-group by优化(Av765670802,P92)

93.36. 进阶-SQL优化-limit优化(Av765670802,P93)

94.37. 进阶-SQL优化-count优化(Av765670802,P94)

95.38. 进阶-SQL优化-update优化(避免行锁升级为表锁)(Av765670802,P95)

96.39. 进阶-SQL优化-小结(Av765670802,P96)
在这里插入图片描述
2023年10月27日23:59:28
视图不看了,从锁开始看。
97.40. 进阶-视图-介绍及基本语法(Av765670802,P97)

98.41. 进阶-视图-检查选项(cascaded)(Av765670802,P98)

99.42. 进阶-视图-检查选项(local)(Av765670802,P99)

100.43. 进阶-视图-更新及作用(Av765670802,P100)

101.44. 进阶-视图-案例(Av765670802,P101)

102.45. 进阶-存储过程-介绍(Av765670802,P102)

103.46. 进阶-存储过程-基本语法(Av765670802,P103)

104.47. 进阶-存储过程-变量-系统变量(Av765670802,P104)

105.48. 进阶-存储过程-变量-用户定义变量(Av765670802,P105)

106.49. 进阶-存储过程-变量-局部变量(Av765670802,P106)

107.50. 进阶-存储过程-if判断(Av765670802,P107)

108.51. 进阶-存储过程-参数(IN,OUT,INOUT)(Av765670802,P108)

109.52. 进阶-存储过程-case(Av765670802,P109)

110.53. 进阶-存储过程-循环-while(Av765670802,P110)

111.54. 进阶-存储过程-循环-repeat(Av765670802,P111)

112.55. 进阶-存储过程-循环-loop(Av765670802,P112)

113.56. 进阶-存储过程-游标-cursor(Av765670802,P113)

114.57. 进阶-存储过程-条件处理程序-handler(Av765670802,P114)

115.58. 进阶-存储函数(Av765670802,P115)

116.59. 进阶-触发器-介绍(Av765670802,P116)

117.60. 进阶-触发器-案例1(insert类型)(Av765670802,P117)

118.61. 进阶-触发器-案例2(update类型)(Av765670802,P118)

119.62. 进阶-触发器-案例3(delete类型)(Av765670802,P119)

120.63. 进阶-视图&存储过程&触发器-小结(Av765670802,P120)

121.64. 进阶-锁-介绍(Av765670802,P121)

122.65. 进阶-锁-全局锁-介绍(Av765670802,P122)

123.66. 进阶-锁-全局锁-一致性数据备份(Av765670802,P123)

124.67. 进阶-锁-表级锁-表锁(Av765670802,P124)

125.68. 进阶-锁-表级锁-元数据锁(Av765670802,P125)

126.69. 进阶-锁-表级锁-意向锁(Av765670802,P126)

127.70. 进阶-锁-表级锁-意向锁-测试(Av765670802,P127)

128.71. 进阶-锁-行级锁-介绍(Av765670802,P128)

129.72. 进阶-锁-行级锁-行锁(Av765670802,P129)

130.73. 进阶-锁-行级锁-间隙锁&临键锁1(Av765670802,P130)

131.74. 进阶-锁-行级锁-间隙锁&临键锁2(Av765670802,P131)

132.75. 进阶-锁-小结(Av765670802,P132)

133.76. 进阶-InnoDB引擎-逻辑存储结构(Av765670802,P133)

134.77. 进阶-InnoDB引擎-架构-内存结构1(Av765670802,P134)

135.78. 进阶-InnoDB引擎-架构-内存结构2(Av765670802,P135)

136.79. 进阶-InnoDB引擎-架构-磁盘结构(Av765670802,P136)

137.80. 进阶-InnoDB引擎-架构-后台线程(Av765670802,P137)

138.81. 进阶-InnoDB引擎-事务原理-概述(Av765670802,P138)

139.82. 进阶-InnoDB引擎-事务原理-redolog(Av765670802,P139)

140.83. 进阶-InnoDB引擎-事务原理-undolog(Av765670802,P140)

141.84. 进阶-InnoDB引擎-MVCC-基本概念(Av765670802,P141)

142.85. 进阶-InnoDB引擎-MVCC-隐藏字段(Av765670802,P142)

143.86. 进阶-InnoDB引擎-MVCC-undolog版本链(Av765670802,P143)

144.87. 进阶-InnoDB引擎-MVCC-readview介绍(Av765670802,P144)

145.88. 进阶-InnoDB引擎-MVCC-原理分析(RC级别)(Av765670802,P145)

146.89. 进阶-InnoDB引擎-MVCC-原理分析(RR级别)(Av765670802,P146)

147.90. 进阶-InnoDB引擎-小结(Av765670802,P147)

148.91. 进阶-MySQL管理-系统数据库介绍(Av765670802,P148)

149.92. 进阶-MySQL管理-常用工具1(Av765670802,P149)

150.93. 进阶-MySQL管理-常用工具2(Av765670802,P150)

151.94. 进阶-MySQL管理-小结(Av765670802,P151)

152.95. 进阶篇总结(Av765670802,P152)

153.01. 运维-课程介绍(Av765670802,P153)

154.02. 运维-日志-错误日志(Av765670802,P154)

155.03. 运维-日志-二进制日志(Av765670802,P155)

156.04. 运维-日志-查询日志(Av765670802,P156)

157.05. 运维-日志-慢查询日志(Av765670802,P157)

158.06. 运维-主从复制-概述(Av765670802,P158)

159.07. 运维-主从复制-原理(Av765670802,P159)

160.08. 运维-主从复制-主库配置(Av765670802,P160)

161.09. 运维-主从复制-从库配置(Av765670802,P161)

162.10. 运维-主从复制-测试(Av765670802,P162)

163.11. 运维-分库分表-介绍(Av765670802,P163)

164.12. 运维-分库分表-介绍-拆分方式(Av765670802,P164)

165.13. 运维-分库分表-MyCat概述-安装(Av765670802,P165)

166.14. 运维-分库分表-MyCat概述-核心概念(Av765670802,P166)

167.15. 运维-分库分表-MyCat入门(Av765670802,P167)

168.16. 运维-分库分表-MyCat入门-测试(Av765670802,P168)

169.17. 运维-分库分表-MyCat配置1(Av765670802,P169)

170.18. 运维-分库分表-MyCat配置2(Av765670802,P170)

171.19. 运维-分库分表-Mycat分片-垂直分库(Av765670802,P171)

172.20. 运维-分库分表-Mycat分片-垂直分库-测试(Av765670802,P172)

173.21. 运维-分库分表-Mycat分片-水平分表(Av765670802,P173)

174.22. 运维-分库分表-分片规则-范围分片(Av765670802,P174)

175.23. 运维-分库分表-分片规则-取模分片(Av765670802,P175)

176.24. 运维-分库分表-分片规则-一致性hash算法(Av765670802,P176)

177.25. 运维-分库分表-分片规则-枚举分片(Av765670802,P177)

178.26. 运维-分库分表-分片规则-应用指定算法(Av765670802,P178)

179.27. 运维-分库分表-分片规则-固定hash算法(Av765670802,P179)

180.28. 运维-分库分表-分片规则-字符串hash解析(Av765670802,P180)

181.29. 运维-分库分表-分片规则-按天分片(Av765670802,P181)

182.30. 运维-分库分表-分片规则-按自然月分片(Av765670802,P182)

183.31. 运维-分库分表-Mycat管理与监控-原理(Av765670802,P183)

184.32. 运维-分库分表-Mycat管理工具(Av765670802,P184)

185.33. 运维-分库分表-MyCat监控1(Av765670802,P185)

186.34. 运维-分库分表-MyCat监控2(Av765670802,P186)

187.35. 运维-分库分表-总结(Av765670802,P187)

188.36. 运维-读写分离-介绍(Av765670802,P188)

189.37. 运维-读写分离-一主一从准备(Av765670802,P189)

190.38. 运维-读写分离-一主一从读写分离(Av765670802,P190)

191.39. 运维-读写分离-双主双从介绍(Av765670802,P191)

192.40. 运维-读写分离-双主双从搭建(Av765670802,P192)

193.41. 运维-读写分离-双主双从读写分离(Av765670802,P193)

194.42. 运维-读写分离-总结(Av765670802,P194)

195.43. 运维篇总结(Av765670802,P195)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值