数据库技术基础:查询优化相关知识笔记
? ? ? ?
1、查詢優(yōu)化的基本概念
1.1 查詢處理
查詢處理是指從數(shù)據(jù)庫中提取數(shù)據(jù)的一系列活動(dòng)。主要包括:將高級(jí)數(shù)據(jù)庫查詢語句翻譯成文件系統(tǒng)這一物理 層次的表達(dá)式,為優(yōu)化查詢進(jìn)行各種轉(zhuǎn)換以及查詢的實(shí)際執(zhí)行。
1.2 查詢處理的代價(jià)
查詢處理的代價(jià)通常由磁盤的訪問,因?yàn)榇疟P訪問比內(nèi)存訪問速度慢很多。磁盤的訪問次數(shù)對(duì)查詢策略的好壞影響很大,有時(shí)候甚至?xí)顜讉€(gè)數(shù)量級(jí)。
1.3 查詢優(yōu)化
查詢優(yōu)化是為了查詢能夠選擇最有效的查詢計(jì)劃。查詢優(yōu)化涉及關(guān)系代數(shù)級(jí)優(yōu)化(盡可能找到與給定表達(dá)式等價(jià)、執(zhí)行效率更高的表達(dá)式)、查詢語句處理的詳細(xì)策略的選擇。
查詢優(yōu)化的關(guān)鍵是找到一個(gè)與之等價(jià)的且操作時(shí)間又少的表達(dá)式。
2、關(guān)系代數(shù)表達(dá)式中的查詢優(yōu)化
優(yōu)化準(zhǔn)則
1.盡早執(zhí)行選取運(yùn)算:對(duì)于有選擇運(yùn)算的表達(dá)式,應(yīng)優(yōu)化成先執(zhí)行選擇運(yùn)算的等價(jià)表達(dá)式,從而取得較小的中間結(jié)果,減少運(yùn)算量和從外存讀塊的次數(shù)。
2.合并乘積與其后的選擇運(yùn)算為連接運(yùn)算:避免乘積運(yùn)算后,再掃描一個(gè)大的乘積關(guān)系進(jìn)行選擇運(yùn)算。
3.將投影運(yùn)算和后面的其他運(yùn)算同時(shí)進(jìn)行,避免重復(fù)掃描關(guān)系
4.將投影運(yùn)算和其前后的二目運(yùn)算結(jié)合起來。避免一些沒必要的字段再掃描一遍關(guān)系。
5.在執(zhí)行連接前對(duì)關(guān)系適當(dāng)?shù)仡A(yù)處理,就可以快速找到要連接的元素。方法:索引連接法、排序合并連接法。
6.存儲(chǔ)公共表達(dá)式。對(duì)于有公共表達(dá)式的結(jié)果應(yīng)存于外存。可以節(jié)約操作時(shí)間。
IT技術(shù)分享社區(qū)
個(gè)人博客網(wǎng)站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠(yuǎn)程辦公:常用的遠(yuǎn)程協(xié)助軟件,你都知道嗎?51單片機(jī)程序下載、ISP及串口基礎(chǔ)知識(shí)硬件:斷路器、接觸器、繼電器基礎(chǔ)知識(shí)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的数据库技术基础:查询优化相关知识笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 查看锁_SQL-mysql锁
- 下一篇: 关系数据库基础:函数依赖知识笔记