实验六:数据库监视与性能优化试验

本文介绍了数据库监视与性能优化的实验,包括使用EXPLAIN命令分析查询执行计划、索引优化、SQL语句调整以及规范化设计对性能的影响。实验强调了如何利用索引改善查询性能,对比了IN与Exists查询、相关与不相关子查询的执行效率,并探讨了规范化设计在海量数据场景下的挑战和解决方案。
摘要由CSDN通过智能技术生成

实验六:数据库监视与性能优化试验

实验目的:

理解和掌握数据库查询性能调优的原理和方法

实验内容:

1.学会使用Explain命令分析查询执行计划、利用索引优化查询性能
2.理解和掌握数据库规范化设计对查询性能的影响
3.针对给定的数据库模式,设计不同的实例验证查询性能优化效果

使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈

使用方式如下:
EXPLAIN +SQL语句

通过EXPLAIN,我们可以分析出以下结果:
表的读取顺序
数据读取操作的操作类型
哪些索引可以使用
哪些索引被实际使用
表之间的引用
每张表有多少行被优化器查询
实验重点与难点

实验重点:

利用索引优化查询性能、优化SQL语句

实验难点:

数据库模式规范化设计对查询性能的影响

实验过程:

1.使用EXPLAIN命令查看查询执行计划

2.利用索引优化查询性能
建立索引,优化SQL查询性能,比较在Part表的Name字段有索引和无索引时,两种执行计划有何异同?

3 优化SQL语句
(1)IN与Exists查询
(2)尽可能使用不相关子查询,避免使用相关查询。不相关子查询一般比相关子查询效率要高。在可能的情况下,改写相关子查询为不相关子查询。
查找这样的订单,总价大于顾客所购商品的平均总价
比较两种执行计划,并实际测试执行性能,哪种执行计划好?
相关子查询:
不相关子查询:
4. 数据库模式规范化设计对查询性能的影响

分析Sales模式中是否存在不规范化的设计?该设计在海量数据的情况下查询效率如何?如何在设计上进一步提高海量数据的查询效率?
第三范式在一定程度上减少了不必要的数据冗余,提高了数据库的查询效率,但是如果数据量大且存在大量联合查询的时候,第三范式设计有可能会影响查询效率。

Sales模式中可能存在的不规范的设计如下

  1. 使用EXPLAIN命令查看查询执行计划
    在这里插入图片描述

2.利用索引优化查询性能
建立索引,优化SQL查询性能,比较在Part表的Name字段有索引和无索引时,两种执行计划有何异同?
在这里插入图片描述

3 优化SQL语句
(1)IN与Exists查询
在这里插入图片描述

Exists查询:
在这里插入图片描述

(2).相关子查询
在这里插入图片描述

不相关子查询:
在这里插入图片描述

查询所有购物总金额大于20万的客户编号及其购物总金额:
在这里插入图片描述

如果不用Totalprice字段, SQL查询语句则为:
在这里插入图片描述

查询所有购物零售总金额(折扣和加税之前的价格,即extendedprice)大于1万的订单对应的客户编号及金额:
在这里插入图片描述

如果不使用extendedprice , SQL查询则为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值