王茜
[摘 要]當(dāng)今時代網(wǎng)絡(luò)飛速發(fā)展,不管是商業(yè)還是個人對數(shù)據(jù)的存儲與提取技術(shù)都提出了前所未有的高要求,傳統(tǒng)的商業(yè)模式下的數(shù)據(jù)庫技術(shù)已經(jīng)不能完全滿足信息管理和交換的要求。這就需要對數(shù)據(jù)庫技術(shù)進(jìn)行提升,對數(shù)據(jù)庫進(jìn)行多方位的優(yōu)化,以提高信息傳輸效率,降低網(wǎng)絡(luò)流量,避免數(shù)據(jù)庫過載。
[關(guān)鍵詞]數(shù)據(jù)庫;優(yōu)化;范式;索引;查詢
doi:10.3969/j.issn.1673 - 0194.2016.24.098
[中圖分類號]TP311.13 [文獻(xiàn)標(biāo)識碼]A [文章編號]1673-0194(2016)24-0-01
數(shù)據(jù)庫優(yōu)化技術(shù)目前還在不斷探討和鉆研之中,還遠(yuǎn)遠(yuǎn)未達(dá)到完全滿足商業(yè)和個人需求的地步。數(shù)據(jù)庫優(yōu)化技術(shù)按照數(shù)據(jù)庫管理的不同階段分為范式優(yōu)化、索引優(yōu)化、查詢優(yōu)化3種優(yōu)化,也是對各個不同階段進(jìn)行優(yōu)化設(shè)計(jì)的具體方法。這3種不同的優(yōu)化技術(shù)分別在邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、查詢階段發(fā)揮各自不同的作用,共同作用于數(shù)據(jù)庫優(yōu)化。這可以看出,在數(shù)據(jù)處理和管理的各個階段,程序員是否能夠采取恰當(dāng)?shù)姆椒ê褪侄螌?shù)據(jù)庫進(jìn)行設(shè)計(jì)與調(diào)整,對數(shù)據(jù)庫優(yōu)化技術(shù)能否得到有效提高產(chǎn)生至關(guān)重要的影響。
1 數(shù)據(jù)庫優(yōu)化的必要性
現(xiàn)代的生活節(jié)奏空前加快,對于生活生產(chǎn)所積累的數(shù)據(jù)需要儲存下來,以備后來查詢使用。數(shù)據(jù)庫,就是一個數(shù)據(jù)存儲的空間,把數(shù)據(jù)和資料按照一定的規(guī)律存儲起來,查找或利用,對于社會生產(chǎn)生活和商業(yè)都大有裨益。
數(shù)據(jù)庫發(fā)展到一定的程度,當(dāng)前的存儲技術(shù)已經(jīng)不能很好地滿足人們的需求,因此需要在各個方面對數(shù)據(jù)庫進(jìn)行優(yōu)化設(shè)計(jì),以提高數(shù)據(jù)庫的運(yùn)行能力,降低網(wǎng)絡(luò)荷載,減少網(wǎng)絡(luò)流量,增加可操作性和可行性。數(shù)據(jù)庫的優(yōu)化作為一門獨(dú)特的科學(xué)技術(shù)也需要得到不斷的發(fā)展,才能使用到更加寬廣的領(lǐng)域,從更多的方面影響到人類的生活,給生產(chǎn)或是商業(yè)運(yùn)行帶來更大的便利。而且以往數(shù)據(jù)庫技術(shù)落后,不能滿足快速發(fā)展的商業(yè)化社會,需要得到及時的更新和優(yōu)化。因此,數(shù)據(jù)庫優(yōu)化是現(xiàn)代數(shù)據(jù)領(lǐng)域不斷向前發(fā)展的大趨勢。
2 數(shù)據(jù)庫優(yōu)化技術(shù)
2.1 范式優(yōu)化
在數(shù)據(jù)庫的邏輯設(shè)計(jì)階段,也就是通常所說的數(shù)據(jù)庫開發(fā)階段,利用范式對基本表進(jìn)行規(guī)范化的操作,即范式優(yōu)化。在范式優(yōu)化中,主要的邏輯設(shè)計(jì)是要符合第三范式,消除函數(shù)依賴,避免傳遞依賴。第三范式有很多之前的設(shè)計(jì)階段所采用的方式所沒有的優(yōu)點(diǎn),其主要的優(yōu)點(diǎn)就是消除大量備份數(shù)據(jù)給操作帶來的負(fù)面影響。同時,沒有從實(shí)質(zhì)上改變數(shù)據(jù)庫的形態(tài),沒有讓數(shù)據(jù)庫受到來自其他方面的負(fù)面影響,可以說是很全面的初始設(shè)計(jì)方法。在數(shù)據(jù)存儲和備份中找到了一個十分恰當(dāng)?shù)钠胶恻c(diǎn),從開發(fā)階段就克服了以往的優(yōu)化缺陷,形成了一個較為完美的開始。
當(dāng)然,范式優(yōu)化也不是完全沒有缺點(diǎn)的。在范式優(yōu)化中,級別不斷上升,許多操作中存在的不合理情況都已經(jīng)消失,比如冗余和更新異常等,但是由于級別上升,上一級的關(guān)系模式不斷循環(huán)往復(fù)的分解掉,那么關(guān)系模式的數(shù)目就越來越多,由此帶來操作鏈接的繁雜。這就是一個異于常規(guī)的問題,操作鏈接繁雜后所帶來的操作消耗就開始變得復(fù)雜,操作的可行性降低,數(shù)據(jù)庫的壓力增加,嚴(yán)重的可能還會影響數(shù)據(jù)庫的正常工作。因此,范式優(yōu)化是一個適可而止的過程,其與操作鏈接的合理分配就是一個優(yōu)化的分界線,只有找到兩者之間的平衡,才能既優(yōu)化數(shù)據(jù)庫,也帶來操作的便捷性和實(shí)用性。
2.2 索引優(yōu)化
索引優(yōu)化在數(shù)據(jù)庫的物理設(shè)計(jì)階段發(fā)揮著重要作用。索引是查詢的反面,是建立在查詢基礎(chǔ)上的深層次數(shù)據(jù)庫內(nèi)部優(yōu)化技術(shù),通過使用索引,可以提高上數(shù)據(jù)庫的訪問性能,是目前數(shù)據(jù)庫優(yōu)化中的主要對象。
在索引優(yōu)化中要做到索引的全面性和進(jìn)步性。所謂全面性是指在查詢時的索引指針要指向全部的索引內(nèi)容,不重不漏,對索引的每一個語句都單獨(dú)分析,繼而合并分析,做到索引的細(xì)化。所謂進(jìn)步性,是指在索引中對于一些刪除或添加的選項(xiàng),也要一并加入到索引的指針范圍,隨著時間推移在查詢內(nèi)容上產(chǎn)生變化的部分在索引中也能做到準(zhǔn)確無誤的顯示。
索引的優(yōu)化還可以對數(shù)據(jù)庫的結(jié)構(gòu)產(chǎn)生優(yōu)化作用,好的索引優(yōu)化能夠在屬性或是屬性之間的相互連接上對數(shù)據(jù)庫的結(jié)構(gòu)提出更高的要求,實(shí)現(xiàn)查詢的順暢、內(nèi)容的可操作、數(shù)據(jù)庫結(jié)構(gòu)的合理設(shè)計(jì)。
2.3 查詢優(yōu)化
查詢時數(shù)據(jù)庫中最常發(fā)出的指令,在數(shù)據(jù)庫的使用中最為常見。在某一個固定的查詢方式上,一般其得出的語句結(jié)果多種多樣。查詢優(yōu)化是查詢階段的優(yōu)化技術(shù),通過查詢優(yōu)化,能夠在繁多的執(zhí)行策略中選擇最為合理和最為恰當(dāng)?shù)膱?zhí)行策略,提高查詢的準(zhǔn)確性和效率。
有時候在對全表查詢和掃描的過程中會使數(shù)據(jù)庫的使用效率非常低,因此在查詢階段對于查詢優(yōu)化技術(shù)的分析和研究就顯得尤為重要。提高查詢效率最主要的方法就是合理且適當(dāng)?shù)厥褂盟饕?。索引和查詢相輔相成,是數(shù)據(jù)庫中一個整體的兩個不可分割的面。
在查詢優(yōu)化過程中,許多的程序員只顧界面的精美和華麗,不顧查詢效率,這導(dǎo)致很多開發(fā)出來的應(yīng)用在查詢時效率低下,資源過度浪費(fèi)。因此,如何做好查詢優(yōu)化就成了當(dāng)前程序員所要面臨的主要問題。在查詢過程的設(shè)計(jì)中,做到語句的合理高效簡便是第一要務(wù),此外還應(yīng)注意到避免對大型表進(jìn)行重復(fù)的排序,如果無法避免,應(yīng)當(dāng)對這種重復(fù)排序進(jìn)行簡化處理,這樣在查詢中,同一語句對應(yīng)的查詢結(jié)果就不會太過冗余,不會造成查詢效率低下。
3 結(jié) 語
在數(shù)據(jù)庫的設(shè)計(jì)階段,嚴(yán)格按照第三范式的要求進(jìn)行,但不可過于追求高級別的范式,要力求達(dá)到操作的可行性和實(shí)用性。在查詢和索引階段,根據(jù)不同的數(shù)據(jù)庫的特點(diǎn)來進(jìn)行查詢和索引的優(yōu)化,做到多重語句的書寫和運(yùn)用,避免對大型數(shù)據(jù)過多地重復(fù)排序,從數(shù)據(jù)庫開發(fā)、設(shè)計(jì)、使用的各個階段提升其性能,提高查詢效率。
主要參考文獻(xiàn)
[1]李韓,孫永杰.SQL數(shù)據(jù)庫的安全管理和性能優(yōu)化[J].科技創(chuàng)新與應(yīng)用,2016(31).