W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
這里我們將介紹為了獲取結(jié)果,一個查詢將會經(jīng)歷那些階段。
一個由應(yīng)用程序到PostgreSQL服務(wù)器的連接必須被建立。應(yīng)用程序傳遞一個查詢給服務(wù)器并等待接收由服務(wù)器傳回的結(jié)果。
分析階段對由應(yīng)用程序傳遞的查詢進行語法檢查,并創(chuàng)建一個查詢樹。
重寫系統(tǒng)得到分析階段創(chuàng)建的查詢樹,并查找可以應(yīng)用到該查詢樹的任何規(guī)則(存儲在系統(tǒng)目錄中)。對找到的規(guī)則,它會執(zhí)行規(guī)則體中給定的轉(zhuǎn)換。
重寫系統(tǒng)的一個應(yīng)用是實現(xiàn)視圖。不論何時發(fā)生一個視圖(即一個虛擬表)上的查詢,重寫系統(tǒng)將用戶查詢重寫為一個訪問視圖定義中給定的基本表的查詢來替代。
規(guī)劃器/優(yōu)化器接手(重寫過的)查詢樹并創(chuàng)建一個將被作為執(zhí)行器輸入的查詢計劃。
它會先創(chuàng)建所有可能導向相同結(jié)果的路徑。例如,如果在一個被掃描的關(guān)系上有一個索引,則有兩條可供掃描的路徑。其中之一是一個簡單的順序掃描,而另一個則是使用索引。接下來執(zhí)行每條路徑所需的代價被估算出來并且代價最低的路徑將被選中。代價最低的路徑將被擴展成一個完整的計劃可供執(zhí)行器使用。
執(zhí)行器遞歸地逐步通過計劃樹并按照計劃表述的方式獲取行。執(zhí)行器在掃描關(guān)系時會使用存儲系統(tǒng)、執(zhí)行排序和連接、估算條件并最后歸還得到的行。
在下面的小節(jié)中我們將覆蓋上述列出的每一項的詳細內(nèi)容,以便更好地理解PostgreSQL的內(nèi)部控制和數(shù)據(jù)結(jié)構(gòu)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: