人
已閱讀
已閱讀
APP開發(fā)人員必須掌握的數(shù)據(jù)庫優(yōu)化技能
來源:lexintech.com ?? ?? 發(fā)布時間:2019-05-17
在一個APP開發(fā)項目中,數(shù)據(jù)庫設(shè)計和開發(fā)是相當重要的工作。對于一個數(shù)據(jù)庫開發(fā)人員來說,數(shù)據(jù)庫中最難以理解的模塊,就是優(yōu)化器。
作為APP開發(fā)團隊中的數(shù)據(jù)庫開發(fā)人員,如果對優(yōu)化器不夠了解,那他在對數(shù)據(jù)庫數(shù)據(jù)庫調(diào)優(yōu)的過程中就會很難做好。從對優(yōu)化器的掌握程度上來判斷,數(shù)據(jù)庫開發(fā)人員對優(yōu)化器的理解大致可以分成以下幾個層次。
一:粗淺了解,比如知道優(yōu)化器分為邏輯優(yōu)化和物理優(yōu)化,了解一些邏輯優(yōu)化的方法,知道執(zhí)行計劃的來源,能看懂優(yōu)化器產(chǎn)生的執(zhí)行計劃。
二:詳細了解,在粗淺了解的基礎(chǔ)上,能夠根據(jù)自己對優(yōu)化器的了解,調(diào)整出優(yōu)化器“喜愛”的 SQL 語句,并且對于產(chǎn)生的執(zhí)行計劃的優(yōu)劣一目了然,知其然更知其所以然。
三:深度了解,需要對優(yōu)化器的每個細節(jié)有清楚的認知,在我們寫出一個 SQL 語句之后,可以庖丁解牛式地在腦海中浮現(xiàn)出語句在優(yōu)化器中的優(yōu)化過程,清楚地知道每個細節(jié)的實現(xiàn)過程。
要想達到層次一只需要閱讀一些基礎(chǔ)理論即可,通常,數(shù)據(jù)庫初學(xué)者對優(yōu)化器的了解都處于這個層次,但這種了解對于實際應(yīng)用的意義不大。而要想達到層次三則需要細致地解讀優(yōu)化器的源代碼,雖然作為數(shù)據(jù)庫專家是必須要掌握到這一層的,但這個過程又過于“艱辛”。
而大多數(shù)數(shù)據(jù)庫從業(yè)人員游走在兩者之間,大家的目標無非是在數(shù)據(jù)庫調(diào)優(yōu)過程中手到擒來地使用優(yōu)化器查詢,也就是這里的層次二。
那么,有沒有辦法在不分析數(shù)據(jù)庫內(nèi)核源代碼的情況下,從數(shù)據(jù)庫使用者的角度出發(fā),結(jié)合外在的系統(tǒng)表信息、參數(shù)信息、執(zhí)行計劃信息反向把優(yōu)化器的原理講清楚,從而確保大家進階到層次二,掌握優(yōu)秀的數(shù)據(jù)庫開發(fā)人員必備的核心技能優(yōu)化器呢?
答案是肯定的,通過深入的挖掘數(shù)據(jù)庫的元數(shù)據(jù)、參數(shù)、執(zhí)行計劃,再結(jié)合數(shù)據(jù)庫優(yōu)化器的相關(guān)理論,一定能把優(yōu)化器的實現(xiàn)說清楚。