Mysql高级 上

本文介绍了MySQL的安装、sql_mode的设置,详细讲解了MySQL的逻辑架构和工作流程,探讨了MyISAM与InnoDB存储引擎的差异,包括事务、锁、索引等方面。此外,还深入讨论了索引的概念、优缺点、数据结构如B-Tree和B+Tree,以及何时创建和不创建索引的策略。最后,给出了若干性能分析和实际操作的作业题。
摘要由CSDN通过智能技术生成

一, MySQL的安装

https://www.jianshu.com/p/276d59cbc529

二,MySQL的sql_mode合理设置

用来约束查询有误的SQL语句 虽然说语法没有问题
incompatible with sql_mode=only_full_group_by
ONLY_FULL_GROUP_BY
select 后面的字段只能跟group by 后面的字段与聚 合函数 max,avg

三, MySQL逻辑架构及工作流程(重点)

	1.应用程序通过客户端发起请求
    2.从数据库连接池里面拿到一个连接
    3.访问缓存/写数据到缓冲 如果有缓存 直接拿走
    4.缓存没有命中 走SQL查询 走解析器 走优化器
    5.从磁盘当中扫描数据 分别返回给缓存和客户端

四, 性能分析工具

    1.开启性能分析工具
       show variables like '%profiling%';
            set profiling=1;
            show profiles;   
    2.开启MySQL的查询缓存
            修改配置文件vim /etc/my.cnf
            新增一行:query_cache_type=1(开启查询缓存0时表示关闭,1时表示打开)
            systemctl restart mysqld
    3.想要使用查询缓存 必须SQL语句一模一样

五, 存储引擎MyISAM和InnoDB

1.事务
MyISAM: 不具备事务 提供高速检索速度和查询速度
InnoDB: 具备事务
2.锁
MyISAM: 采用表锁 不适合在高并发的情况下修改数据 降低了读写吞吐量
InnoDB: 采用行锁 适合在高并发修改数据 吞吐量高
3.索引
MyISAM: 只缓存索引 非聚簇索引
InnoDB: 缓存索引与数据 聚簇索引
4.如何选择
MyISAM: 经常查询 没有事务
InnoDB: 频繁修改表 有事务 高并发操作数据库表
https://blog.csdn.net/xlgen157387/article/details/68978320

六,索引

1.概念
可以帮助我们快速找到数据,是一种数据结构
2.优势和劣势
可以提升我们检索数据的效率
降低我们更新表的速度
会占用额外的磁盘空间
3.平衡二叉树
任何节点的两个子树的高度最大差为1
4.B-Tree和B+Tree的区别(重点)
a.B+Tree数据结构
存放主键
存放子节点地址
叶子节点只存储主键与数据
b.优点
由于非叶子节点没有存放数据 每个磁盘块可以存放更多的索引节点
B+Tree树的深度比B-Tree更低 意味着访问磁盘的次数少 性能更高
5.聚簇索引与非聚簇索引
a.聚簇索引
如果节点中包含数据
b.非聚簇索引
如果节点中不包含数据
6.哪些情况需要创建索引←
主键自动建立唯一索引
频繁作为查询条件的字段应该创建索引
两个表之间存在外键关联,那这个外键也应该建立索引
单键索引与组合索引相对比,组合索引性价比更高
查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
查询中统计或者分组字段
7.哪些情况不要创建索引←
表记录太少
经常增删改的表或者字段
Where条件里用不到的字段不创建索引
过滤性不好的不适合建索引
性别 就男 女 未知

预热

  1. 求各个门派对应的掌门人名称:
在这里插入代码片

2.求所有当上掌门人的平均年龄:

在这里插入代码片

3.求所有人物对应的掌门名称

在这里插入代码片

作业

1、列出自己的掌门比自己年龄小的人员

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值