新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)OceanBase教程:OceanBaseSQL請(qǐng)求執(zhí)行流程
SQL 引擎從接受 SQL 請(qǐng)求到執(zhí)行的典型流程如下圖所示:

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供遷西企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、做網(wǎng)站、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為遷西眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
下表為 SQL 請(qǐng)求執(zhí)行流程的步驟說(shuō)明。
| 步驟 | 說(shuō)明 |
| Parser(詞法/語(yǔ)法解析模塊) | 在收到用戶(hù)發(fā)送的 SQL 請(qǐng)求串后,Parser 會(huì)將字符串分成一個(gè)個(gè)的“單詞”,并根據(jù)預(yù)先設(shè)定好的語(yǔ)法規(guī)則解析整個(gè)請(qǐng)求,將 SQL 請(qǐng)求字符串轉(zhuǎn)換成帶有語(yǔ)法結(jié)構(gòu)信息的內(nèi)存數(shù)據(jù)結(jié)構(gòu),稱(chēng)為語(yǔ)法樹(shù)(Syntax Tree)。 |
| Plan Cache(執(zhí)行計(jì)劃緩存模塊) | 執(zhí)行計(jì)劃緩存模塊會(huì)將該 SQL 第一次生成的執(zhí)行計(jì)劃緩存在內(nèi)存中,后續(xù)的執(zhí)行可以反復(fù)執(zhí)行這個(gè)計(jì)劃,避免了重復(fù)查詢(xún)優(yōu)化的過(guò)程。 |
| Resolver(語(yǔ)義解析模塊) | Resolver 將生成的語(yǔ)法樹(shù)轉(zhuǎn)換為帶有數(shù)據(jù)庫(kù)語(yǔ)義信息的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。在這一過(guò)程中,Resolver 將根據(jù)數(shù)據(jù)庫(kù)元信息將 SQL 請(qǐng)求中的 Token 翻譯成對(duì)應(yīng)的對(duì)象(例如庫(kù)、表、列、索引等),生成的數(shù)據(jù)結(jié)構(gòu)叫做 Statement Tree。 |
| Transfomer(邏輯改寫(xiě)模塊) | 分析用戶(hù) SQL 的語(yǔ)義,并根據(jù)內(nèi)部的規(guī)則或代價(jià)模型,將用戶(hù) SQL 改寫(xiě)為與之等價(jià)的其他形式,并將其提供給后續(xù)的優(yōu)化器做進(jìn)一步的優(yōu)化。Transformer 的工作方式是在原 Statement Tree 上做等價(jià)變換,變換的結(jié)果仍然是一棵 Statement Tree。 |
| Optimizer(優(yōu)化器) | 優(yōu)化器是整個(gè) SQL 請(qǐng)求優(yōu)化的核心,其作用是為 SQL 請(qǐng)求生成最佳的執(zhí)行計(jì)劃。在優(yōu)化過(guò)程中,優(yōu)化器需要綜合考慮 SQL 請(qǐng)求的語(yǔ)義、對(duì)象數(shù)據(jù)特征、對(duì)象物理分布等多方面因素,解決訪(fǎng)問(wèn)路徑選擇、聯(lián)接順序選擇、聯(lián)接算法選擇、分布式計(jì)劃生成等多個(gè)核心問(wèn)題,最終選擇一個(gè)對(duì)應(yīng)該 SQL 的最佳執(zhí)行計(jì)劃。 |
| Code Generator(代碼生成器) | 將執(zhí)行計(jì)劃轉(zhuǎn)換為可執(zhí)行的代碼,但是不做任何優(yōu)化選擇。 |
| Executor(執(zhí)行器) |
|
本文題目:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseSQL請(qǐng)求執(zhí)行流程
轉(zhuǎn)載注明:http://www.5511xx.com/article/cdohdpi.html


咨詢(xún)
建站咨詢(xún)
