数据库高级体系结构,存储引擎,优化sql前提条件判断

mysql体系结构


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mysql存储引擎


在这里插入图片描述
查询引擎语句

show engines;

各种存储引擎对比:
在这里插入图片描述

INNODB


在这里插入图片描述
外键约束:
在这里插入图片描述
存储方式:
在这里插入图片描述

MyISAM


在这里插入图片描述
不支持事物,不存储外键

文件存储方式
在这里插入图片描述

存储引擎选择


常用:
在这里插入图片描述
了解:
在这里插入图片描述

sql优化工具


sql优化步骤(原则首先要快速定位到问题sql)

1)查看sql执行频率
在这里插入图片描述
命令:显示当前session的统计参数的值

show status like 'Com________';

上面占位7个字符
在这里插入图片描述
在这里插入图片描述
全局的在status前面加个global
在这里插入图片描述
那么我们只查innodb相关的表的CRUD影响的行数的命令:

show status like 'innodb_rows_%';

在这里插入图片描述
那么怎么验证呢:
可以再执行一个sql语句再执行一下命令观察一下就能得出结论

以上作用:主要是用来这个判断当前数据库CURD操偶作中的哪个为主
2)定位低效率执行sql
两种方法:

在这里插入图片描述
在这里插入图片描述
每列参数:
在这里插入图片描述
在这里插入图片描述

3)分析执行计划
我们经常使用的是explain另外两个了解即可
查询sql语句的执行计划:
列如:

select *from tb_itm where id = 1;

在这里插入图片描述
在这里插入图片描述

explain中每列具体代表的含义:
首先我们假设设计了这样一张表
在这里插入图片描述
中间那个是关联表,用户和角色是多对多的关系,这点明白了继续下一步
创建角色表:
在这里插入图片描述

创建用户表:
在这里插入图片描述

创建用户角色表中间表:
在这里插入图片描述
插入数据按照自己需要插入

环境准备好后继续

  • explain之id
    首先明白这个查询出来的id跟主键还有自增是没关系的
    id解释看上面表
    当然要是单表查询这id用处也不大主要是看查多表的情况,细节注意最好查的时候表换成别名
    id的情况有三种:
    1)id相同表示加载表的顺序从上到下的
    比如说多表等值连接查询情况
    在这里插入图片描述
    2)id不同id值越大优先级越高越先被执行
    比如说嵌套子查询情况
    在这里插入图片描述
    按照这逻辑推导出来即像剥洋葱那样从内往外执行

    3)有点麻烦,id有相同的也有不同的,id相同的可以认为是一组,从上往下执行,所有组中id越大越先被执行
    假设是这个sql语句:
    在这里插入图片描述
    单表查询又连接了一个子查询
    在这里插入图片描述
    那么推导出顺序先查子查询在和外表进行等值连接查询

    不用强记逻辑可以理解的和我们思维方式一样

  • explain之select_type
    常见取值:
    在这里插入图片描述
    自顶向下效率越来越慢
    在这里插入图片描述
    在这里插入图片描述
    标白的子查询是subquery,外层没标白的是primary
    在这里插入图片描述
    对应上面那表解释理解
    然后要注意那个table里面表示的就是下面一行的id和select_type

在这里插入图片描述
这里两个单表查询求并集
需要注意了解一下<union1,2>

  • explain之table
    表示这行数据是哪张表的

  • explain之type
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    要求一条数据的话来个子查询就好

在这里插入图片描述
通常这个是通过主键查询
当然还有特殊情况,原因username是唯一索引
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • expain之key
    在这里插入图片描述
    解释在上面的表也有
    在这里插入图片描述
    前面索引的时候要用短索引
  • explain之extra
    显示还没显示的信息
    在这里插入图片描述
    如果出现了前两个就需要考虑性能的优化了
    在这里插入图片描述
    比如说这样就要考虑加索引了,或者向有索引的查询方式靠

show profile分析sql(了解)


在这里插入图片描述
在这里插入图片描述
这个默认是关闭的需要开启使用set语句
这里的开启级别是session

set profiling = 1;

那么后面查到了这个query_id,再根据最开始那个体系结构图你会发现这个线程每个阶段消耗时间的情况
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

trace分析优化器执行计划(了解)


查询系统盘
在这里插入图片描述
解析select后的*号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值