数据库系统-查询优化

news2024/11/24 18:45:04

文章目录

  • 一、查询优化概述
  • 二、优化的基本思路
      • 2.1 语义优化-内容等价性
      • 2.2 语义优化-语法等价性
      • 2.3 执行优化(物理层优化)
      • 2.4 优化在整个DBMS的位置
  • 三、逻辑查询优化
    • 3.1 逻辑优化整体思路
    • 3.2 关系代数操作次序交换的等价性
          • 定理1 连接&连接 积&积 交换律
          • 定理2 连接&连接 积&积 结合律
          • 定理3 投影串接律
          • 定理4 选择串接律
          • 定理5 选择和投影交换律
          • 定理6 选择和积的交换律
          • 定理7 投影和积的交换律
          • 定理8 选择和并的交换律
          • 定理9 选择和差的交换律
          • 定理10 投影和并的交换律
          • 定理的运用
    • 3.3 关系代数优化的示例
  • 四、物理查询优化
    • 4.1 为什么需要物理查询优化?
    • 4.2 物理优化的整体思路
    • 4.3 物理计划优化的评价标准
      • 4.3.2 如何获取评价指标
      • 4.3.3 代价评估

一、查询优化概述

较少IO次数、内存消耗
谓词下推
在这里插入图片描述

三个层面进行优化:

  • 语义优化:模型的语义以及完整性规则,优化查询
  • 语义优化–逻辑层优化:利用语法结构,优化操作执行顺序
  • 语义优化–物理层优化:存取路径&执行算法的选择与执行次序优化

二、优化的基本思路

2.1 语义优化-内容等价性

在这里插入图片描述

2.2 语义优化-语法等价性

在这里插入图片描述
更可能早的做选择 、投影 运算

2.3 执行优化(物理层优化)

在这里插入图片描述

2.4 优化在整个DBMS的位置

在这里插入图片描述

三、逻辑查询优化

3.1 逻辑优化整体思路

在这里插入图片描述

  1. 早做选择和投影,让中间结果变小,节省巨大的执行时间
  2. 选择&投影串接起来,一次IO ,选择投影全部执行完
  3. 投影&前后的二元运算(两个关系式的并交叉)结合起来,IO时去掉一些无关的属性,避免多次扫
  4. 选择&前的笛卡尔积合并成一个连接
  5. 执行连接运算前对关系做适当的预处理:排序、临时index
  6. 找出表达式里的公共字表达式,共用一个子表达式结果
    在这里插入图片描述

3.2 关系代数操作次序交换的等价性

并 差 积 选择 投影
在这里插入图片描述

定理1 连接&连接 积&积 交换律

在这里插入图片描述

定理2 连接&连接 积&积 结合律

在这里插入图片描述

定理3 投影串接律

在这里插入图片描述

定理4 选择串接律

在这里插入图片描述

定理5 选择和投影交换律

在这里插入图片描述

定理6 选择和积的交换律

在这里插入图片描述

定理7 投影和积的交换律

在这里插入图片描述

定理8 选择和并的交换律

在这里插入图片描述

定理9 选择和差的交换律

在这里插入图片描述

定理10 投影和并的交换律

在这里插入图片描述
在执行差的时候,需要比对全部的col,而不是选择的那几个col

定理的运用

在这里插入图片描述

3.3 关系代数优化的示例

四、物理查询优化

4.1 为什么需要物理查询优化?

在这里插入图片描述

4.2 物理优化的整体思路

在这里插入图片描述

4.3 物理计划优化的评价标准

  • IO次数
  • CPU占用
  • 内存使用代价
  • 中间结果存储代价
  • 计算量(搜索 合并 排序 字段值计算等)
  • 网络通讯量
    在这里插入图片描述

4.3.2 如何获取评价指标

  • 不会自动收集,需要DBA用特定命令完成信息统计,并把结果存入系统目录中的实用程序
  • 随着表更新修改,DBMS会定时更新系统信息
    在这里插入图片描述
    在这里插入图片描述

4.3.3 代价评估

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/460330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcodes刷题之删除链表的倒数N个结点和删除链表的中间的结点

吾心信其可行,则移山填海之难,终有成功之日。 --孙中山 目录 🍉一.删除链表的倒数N个结点 🌻1.双指针 🍁2.求链表的长度 🌸二.删除链表的中间的结点 🍉一.删除链…

DataGridView 真·列头不高亮 真·列头合并

高亮BUG VB.Net,在 .NET Framework 4.8 的 WinForm 下(即不是 WPF 的绘图模式、也不是 Core 或 Mono 的开发框架),使用 DataGridView 行模式,还是有个列头表现为高亮显示: 查找各种解决方式: 设置 ColumnHeadersDefaultCellSty…

Python3语法笔记(前篇)

文章目录 前言基础杂项变量和数据变量与运算数值字符串列表(list)、元组(tuple)和range序列类型(sequence types)和切片(slicing)集合(set)和字典&#xff08…

PS批量给图片加水印

一、打开PS,导入图片 点击菜单栏-文件-打开-载入一张需要设置文字水印的图片 二、点击菜单栏-窗口-动作,打开Photshop的动作组工作台窗口 先点击新建组图标新建一个组类别,再点击新建动作图标新建一个动作,新建后自动开始录制 …

DASFAA 2023|创邻周研博士分享前沿图数据库观点

4月17-20日,2023年第28届高级应用数据库系统国际会议(DASFAA2023)在天津成功举行。创邻科技CTO周研博士受邀参会,围绕Galaxybase国产高性能图数据库进行精彩分享。 DASFAA 2023由DASFAA指导委员会(DASFAA Steering Co…

CVPR 2023 | 语义分割新范式:点监督遇上隐式场

密集预测(dense prediction)网络是解决诸如语义分割和图像本征分解(intrinsic decomposition)等场景理解问题的基本框架。现有工作[1-2] 通常使用像素级标注作为训练密集预测模型的监督。但是像素级别的密集标注非常昂贵, 对一些任务也无法给出精准的像素标注&#…

Linux-初学者系列3——虚拟光驱使用mount挂载操作

虚拟光驱使用mount挂载操作 一、mount挂载操作1、利用图形将光盘镜像文件,放入光驱设备中2、找到Linux光驱设备(青色) 1、挂载光盘和分区mount命令语法:示例:卸载(注意事项) 二、Linux快捷键 一…

Vue(绑定样式、条件渲染、列表渲染)

一、绑定样式 1. class绑定样式名 标签中使用 :class"xxx" xxx可以是字符串,对象,数组 字符串:适用于类名不确定,动态获取 数组:适用于绑定多个样式,个数不确定,字数不确定 对象&…

ProteinGAN扩展蛋白质序列空间

为了更广泛的医学应用,为催化任何所需的化学反应而重新设计蛋白质是蛋白质工程的重点。因此作者开发了ProteinGAN,这是一种基于自注意力的生成对抗网络,能够学习自然蛋白质序列的多样性,并生成功能性蛋白质序列。 来自&#xff1…

基于GEE平台的植被覆盖度(FVC)像元二分法计算

一、植被覆盖度计算方法 植被覆盖度FVC(Fractional Vegetation Cover)定义为单位面积内绿色植被冠层垂直投影面积所占比例。FVC是衡量地表植被状况的重要指标之一,也是区域生态系统环境变化的重要指示,对水文、生态、区域变化等都…

线程同步方式之一互斥锁

线程同步的4种方式:互斥锁、条件变量、读写锁、信号量 了解概念-临界资源、互斥、临界区、原子性 回想一下在信号量那部分提起过的几个概念,将多个执行流串行安全访问的共享资源称为临界资源,多个执行流中访问临界资源的代码所在的地址空间…

第4章 数据结构之“队列”

队列简介(queue) 1.一个先进先出的数据结构 2.javascript中没有这个数据结构,但是可以使用array实现队列的所有功能。 3.队列常用操作:push,shift,获取队列头部的元素:queue[0] const queue []// 入队: …

网络基础之网络传输基本流程

网络基础 此小节介绍网络基础概念 首先要明确的是 网络是层状结构!分层->OP->解耦 网络发展:最早的时候,每台计算机之间是相互独立的。后续发展到网络互联,就是将多台计算机连接在一起,完成数据共享。 协议&…

Jmeter配置元件之csv数据文件配置

一、csv简介 csv是非常通用的一种文件格式,适用于批量导入数据到接口参数中,或者保存测试结果都可以使用csv数据文件(jmeter不仅仅支持这一种读取文件的方式),csv数据一行即为数据表的一行,多个字段用逗号隔开。 登录接口 …

A+CLUB管理人支持计划第四期 | 香农投资

免责声明 本文内容仅对合格投资者开放! 私募基金的合格投资者是指具备相应风险识别能力和风险承担能力,投资于单只私募基金的金额不低于100 万元且符合下列相关标准的单位和个人: (一)净资产不低于1000 万元的单位&…

Vue3技术7之toRaw与markRaw、customRef、provide与inject、响应式数据的判断、组合式API的优势分析

Vue3技术7 toRaw与markRawtoRawApp.vueDemo.vue markRawDemo.vue 总结 customRefApp.vue总结 provide与inject目录结构App.vueChild.vueSon.vue总结 响应式数据的判断App.vue总结 组合式API的优势配置式的API存在的问题组合式API的优势 toRaw与markRaw toRaw App.vue <te…

HDR tone mapping介绍

文章目录 HDR and tone mapping1.什么是HDR&#xff1f;2.为什么需要HDR&#xff1f;3.hdr文件格式4.tone mapping4.1 aces tone mapping4.2 Fast Bilateral Filtering for the Display of High-Dynamic-Range Images 5 参考 HDR and tone mapping 1.什么是HDR&#xff1f; 就…

nginx + springboot 实现限流

1.spring项目打成jar包后&#xff0c;运行起来 &#xff1a;例如我启动项目 ip 端口号&#xff1a;172.168.0.217:8090 2.修改nginx配置&#xff0c;增加如下配置 nginx 中有两个主要的指令可以用来配置限流&#xff1a;limit_req_zone 和 limit_req upstream myserver{serve…

面试篇:Redis

一、缓存穿透 1、缓存穿透 查询一个不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;就会导致每次请求都查数据库。即&#xff1a;大量请求根本不存在的key 2、查询流程 3、出现原因 业务层误将缓存和库中的数据删除了&#xff0c;也可能是有人恶…

3台服务器+StarVCenter,搭建“超融合云平台”-完美体验-跑100台虚拟机

3台服务器StarVCenter&#xff0c;搭建“超融合云平台”-完美体验-跑100台虚拟机 我们通常讲的“超融合&#xff08;HCI&#xff09;”是一种云平台基础架构方案&#xff0c;它无需专用的存储设备&#xff0c; 每台服务器既承担计算又存储数据&#xff0c; 只需增加服务器&…