16 -【cmu15-721】【高級(jí)數(shù)據(jù)庫(kù)系統(tǒng)】【卡內(nèi)基梅隆大學(xué)】【中英字幕】

1. 查詢(xún)優(yōu)化器的目標(biāo)是找到一個(gè)正確的執(zhí)行計(jì)劃,而不是最優(yōu)的執(zhí)行計(jì)劃。
2. 查詢(xún)優(yōu)化是一個(gè)難題,因?yàn)樗且粋€(gè)NP完全問(wèn)題。
3. 查詢(xún)優(yōu)化器使用啟發(fā)式和估算技術(shù)來(lái)估計(jì)執(zhí)行計(jì)劃的成本。
4. 查詢(xún)優(yōu)化器需要考慮許多設(shè)計(jì)決策,包括查詢(xún)重寫(xiě)、關(guān)系代數(shù)等。
5. 不同的數(shù)據(jù)系統(tǒng)有不同的優(yōu)化策略和實(shí)現(xiàn)方法。
6. 多個(gè)查詢(xún)同時(shí)執(zhí)行時(shí),可以進(jìn)行全局優(yōu)化,以獲得更好的性能。
7. 準(zhǔn)備語(yǔ)句可以提高查詢(xún)性能,但需要注意查詢(xún)計(jì)劃的穩(wěn)定性。
8. 提示(hints)和固定優(yōu)化器版本是保持查詢(xún)計(jì)劃穩(wěn)定性的兩種方法。
9. 提示可以告訴優(yōu)化器如何生成查詢(xún)計(jì)劃,而固定優(yōu)化器版本可以使用舊版本的優(yōu)化器生成查詢(xún)計(jì)劃。
10. 查詢(xún)計(jì)劃的穩(wěn)定性對(duì)于數(shù)據(jù)庫(kù)性能至關(guān)重要,不僅僅是查詢(xún)速度的快慢。
11. 在查詢(xún)優(yōu)化中,動(dòng)態(tài)規(guī)劃搜索是一種常用的方法,可以找到最佳的查詢(xún)計(jì)劃和物理操作符。
12. 查詢(xún)優(yōu)化中的一個(gè)關(guān)鍵問(wèn)題是物理數(shù)據(jù)屬性的表示,例如排序和壓縮,需要在查詢(xún)計(jì)劃中進(jìn)行額外的處理。
13. Postgres數(shù)據(jù)庫(kù)使用遺傳算法作為查詢(xún)優(yōu)化器的一部分,通過(guò)隨機(jī)搜索和基因交叉來(lái)尋找最佳查詢(xún)計(jì)劃。
14. 使用高級(jí)語(yǔ)言定義查詢(xún)優(yōu)化規(guī)則和轉(zhuǎn)換,可以更容易地維護(hù)和理解查詢(xún)優(yōu)化器的代碼。
15. 隨機(jī)搜索和遺傳算法是查詢(xún)優(yōu)化中常用的方法,可以在較短時(shí)間內(nèi)找到較好的查詢(xún)計(jì)劃,但不能保證找到最優(yōu)解。
16. 在計(jì)算機(jī)科學(xué)中,存在一種叫做優(yōu)化器生成器的工具,可以通過(guò)高級(jí)語(yǔ)言定義模式和規(guī)則,然后通過(guò)特定編譯器生成優(yōu)化器代碼。
17. IBM Starburst是最早的優(yōu)化器生成器之一,后來(lái)被用于DB2數(shù)據(jù)庫(kù)系統(tǒng)。
18. Volcano和Cascades是基于優(yōu)化器生成器的系統(tǒng),它們使用了不同的搜索策略,分別是分層搜索和統(tǒng)一搜索。
19. 分層搜索是一種自底向上的搜索策略,通過(guò)一系列規(guī)則將邏輯計(jì)劃轉(zhuǎn)換為物理計(jì)劃,并使用成本模型進(jìn)行優(yōu)化。
20. 統(tǒng)一搜索是一種自頂向下的搜索策略,通過(guò)一次性進(jìn)行所有轉(zhuǎn)換,并使用記憶化技術(shù)避免重復(fù)計(jì)算,以快速找到最優(yōu)查詢(xún)計(jì)劃。