MySQL 进阶篇1.0 索引 SQL优化 视图 锁
01-课程介绍
02-存储引擎-MySQL体系结构
03存储引擎-简介
查询建表语句 --默认存储引擎:InnoDB
show create table account;
查询当前数据库支持的存储引擎
show engines;
04存储引擎-InnoDB介绍
开关为"ON": 表示每个innodb引擎的表都有一个idb表共享文件
05存储引擎-MyISAM和Memory
面试常考(InnoDB与MyISAM区别)
06存储引擎的选择(一般就是InnoDB,其他两个在其他SQL中都有优化版)
08MySQL安装(linux)&遇到的问题
输入password的时候 不显示输入 我还以为没输入进去真贱啊
没开Linux防火墙3306的端口 不能远程链接
linux怎么允许3306端口通过防火墙,Centos7允许3306端口通过防火墙_倪振源的博客-CSDN博客
cnm,nmsl,教的什么j8玩意,链接虚拟机地址都不让我们查一下? 老子查了两个点才查出来!!!!
【MySQL】DataGrip连接linux中的MySQL_猫打球商店的博客-CSDN博客_datagrip 连接linux服务器
mariadb-libs 被 mysql-community-libs-compat-8.0.26-1.el7.x86_64 取代_别晃我的可乐的博客-CSDN博客_mariadb-libs
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
直接停止再重启mysql服务
09索引-概述
10索引-结构-介绍
11索引-结构-Btree
红黑树和二叉树都存在问题:大数据量情况,层级较深,检索速度慢;
最大度数:n 每个节点最多存储n-1个key,n个指针;分裂的时候中间向上左右
继续插入元素,
数据结构可视化网站 ↑
12索引-结构-B+tree
13索引-结构-hash
先计算每一行的hash值,然后计算name的hash值映射到蓝色hash槽位里面,然后存储(name,name对应的行的hash值)到hash表;
14索引-结构-思考题(why InnoDB引擎用 B+tree?)
15索引-分类
16索引-思考题
17索引-语法
1. create index idx_user_name on tb_user(name);
2. create index idx_user_name on tb_user(name);
3. create index idx_user_pro_age_sta on tb_user(profession,age,status);
4. create index idx_user_email on tb_user(email);
18索引-性能分析-查看执行频次
编辑
19索引-性能分析-慢查询日志
编辑
编辑
编辑
20索引-性能分析-showprofiles
编辑
编辑
21索引-性能分析-explain
编辑
NULL:查询不妨问任何表时出现 select 'A'; system:访问系统表
const:根据主键/唯一索引访问; ref:使用非唯一索引查询
index:使用了索引,但会扫描遍历整个索引树 all:全表扫描
编辑
编辑
22索引-使用规则-验证索引效率
编辑
23索引-使用规则-最左前缀法则
编辑
编辑
24索引-使用规则-索引失效情况一
编辑
编辑
编辑
25索引-使用规则-索引失效情况二
编辑
编辑
26索引-使用规则-SQL提示
(use只是一种建议 mysql是否接受不一定要看效率) use/ignore/force 建议/不用/强制使用
编辑
27索引-使用规则-覆盖索引&回表查询
编辑
编辑
编辑
面试题:最佳方案:针对username-password建立联合索引 因为联合索引是二级索引,B+树叶子下面挂的是ID,所以执行select不需要回表查询 性能最好
28索引-使用规则-前缀索引
编辑
编辑
29使用规则-单列&联合索引
编辑
编辑
创建索引(phone,name);要满足最左前缀法则;所以要考虑参数顺序
30索引-设计原则
编辑
31索引-小结
32SQL优化-插入数据
编辑
编辑
33SQL优化-主键优化(每页包含2~n)
编辑
编辑
编辑
编辑
编辑
编辑
编辑
34SQL优化-order by优化
编辑
编辑
编辑
35SQL优化-group by优化
编辑
36SQL优化-limit优化
编辑
37SQL优化-count优化(由存储引擎决定)
编辑
编辑
编辑
38SQL优化-update优化(避免行锁升级为表锁)
编辑
39SQL优化-小结
编辑
40视图-介绍及基本语法
编辑
编辑
41视图-检查选项(cascaded) (译为:级联的)
编辑with cascaded check option;
视图 会在操作的时候检查是否满足where条件
并递归继续检查上面(依赖)的v2带cascaded的where 直到每个底层带cascaded的 都满足 才执行SQL;
42.进阶-视图-检查选项(local)
编辑
区别在于:local 当前v3没有检查选项 就不用管其它带(local的)依赖视图;
但是cascaded 就算v3没有也要管v2,v1(带cascaded检查选项的).