999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

針對如何進(jìn)行數(shù)據(jù)庫的查詢優(yōu)化進(jìn)行探討

2013-12-31 00:00:00蘭禎偉
科技創(chuàng)新與應(yīng)用 2013年16期

摘 要:數(shù)據(jù)庫系統(tǒng)是管理信息系統(tǒng)的核心,而數(shù)據(jù)庫所存儲的數(shù)據(jù)則更是我們電腦用戶最重要的個人信息資源,不僅對個人,現(xiàn)如今在銀行、企業(yè)、政府等部門也得到了廣泛的應(yīng)用。文章主要介紹了數(shù)據(jù)庫的查詢優(yōu)化的方法,以便于更加快捷、高效地將數(shù)據(jù)庫應(yīng)用于社會生產(chǎn)實(shí)踐。

關(guān)鍵詞:數(shù)據(jù)庫;索引;優(yōu)化;SQL語句;效率

前言

隨著人類逐步跨入信息時代,我們每天都會處理大量信息。作為信息的載體和最佳表現(xiàn)形式——數(shù)據(jù)的共享性同時也要求數(shù)據(jù)會被大量的搜索查詢,所以對數(shù)據(jù)庫進(jìn)行查詢優(yōu)化在當(dāng)下顯得尤為重要。 但是當(dāng)數(shù)據(jù)的數(shù)量積累到一定的程度時,全部掃描一次往往需要很長的時間,對其進(jìn)行統(tǒng)計(jì)和整理更是一個相當(dāng)困難的工作。但是如果使用更加高明的查詢策略,往往可以大大降低查詢的工作時間,由此可見查詢優(yōu)化技術(shù)在數(shù)據(jù)庫的應(yīng)用中顯得多么得重要。

由于數(shù)據(jù)庫系統(tǒng)在管理信息系統(tǒng)中的核心地位,有關(guān)數(shù)據(jù)庫的各種分析處理也成為計(jì)算機(jī)應(yīng)用的最重要的部組成部分。從以往的經(jīng)驗(yàn)和數(shù)據(jù)統(tǒng)計(jì)來看,查詢操作是數(shù)據(jù)庫操作中使用頻率最高的,故如果在查詢過程中采取更為高明的查詢策略,一定可以減少查詢時間,提高工作效率。

1 基于索引的優(yōu)化

對數(shù)據(jù)庫進(jìn)行優(yōu)化的關(guān)鍵在于在各種各樣的優(yōu)化方法中找出最佳的優(yōu)化方法,即建立最優(yōu)的索引。

說白了,索引的根本目的就是為了提高查詢效率,所以要達(dá)到查詢的最優(yōu)化,那么將索引的使用恰到好處不失為一個高明的策略,而為了避免表掃描,并減少因?yàn)椴樵兌斐傻妮斎胼敵鲩_銷的一個重要方法就是建立索引,建立適合關(guān)系數(shù)據(jù)庫系統(tǒng)的索引。

(1) 建立恰當(dāng)?shù)乃饕紫犬?dāng)然要進(jìn)行正確的分析與判斷,以便使所創(chuàng)建的索引有助于數(shù)據(jù)庫工作效率的提高。我們可以這樣做來達(dá)到這些要求:判斷數(shù)據(jù)庫系統(tǒng)中哪些表的哪些字段要建立索引;不僅要整理出來那些常用且對性能有較大影響的語句,還要熟記數(shù)據(jù)庫程序中的相關(guān)SQL語句。其次,重點(diǎn)關(guān)注與其他表連接頻率高的、數(shù)據(jù)流量較大的表,并且在沒有指定為外鍵的列上建立索引,而對那些不經(jīng)常連接的字段可以通過優(yōu)化器自動生成索引形成列表來完成。

(2)此外在一些大型數(shù)據(jù)庫系統(tǒng)中還會經(jīng)常用到一些索引的使用方法,通過好的索引方法同樣可以將搜索時間大大縮減。所以利用好這些方法對于我們優(yōu)化索引是十分必要的。比如對有多個待排序的列可以在其基礎(chǔ)上建立復(fù)合索引,對進(jìn)行g(shù)roup by或order by等次數(shù)較多的操作也可以建立索引。

嘗試?yán)靡幌孪到y(tǒng)工具。在一些數(shù)據(jù)庫服務(wù)器上,索引可能因?yàn)轭l繁操作而使得讀取效率降低,如果遇到查詢時使用的索引突然慢下來,這時可以試著用dabchick工具檢查索引的完整性,并進(jìn)行簡單的修復(fù)。另外,當(dāng)數(shù)據(jù)庫表更新大量數(shù)據(jù)后,刪除并重建索引可以提高查詢速度;同時任何事情都有兩面性建立索引以求效率最大化的同時,索引作為一種實(shí)體,也會占系統(tǒng)一定的空間,就像360能清空垃圾但是本身也需要占一定的磁盤物理內(nèi)存一樣。所以必須一切從工作實(shí)際出發(fā),不照搬死方法,靈活運(yùn)用,這樣才能實(shí)現(xiàn)查詢最優(yōu)。

(3)簡化排序操作

需要注意的是,建立索引時最好應(yīng)該盡量簡化或避免對大型表進(jìn)行重復(fù)排序的操作。因?yàn)榕判虻牧衼碜圆煌乃詾榱吮苊獠槐匾呐判颍梢試L試著再建立一些適當(dāng)?shù)乃饕⒑侠淼睾喜?shù)據(jù)庫表。當(dāng)然盡管有時可能會影響表的規(guī)范化,但拿提高效率這一優(yōu)點(diǎn)來相比的話還是值得的。如果排序不可避免,那么可以試著簡化它,如縮小排序的列的范圍等。像group by或order by子句中列的次序與索引的次序不一樣、索引中不包括一個或幾個待排序的列等因素都可以通過這樣來達(dá)到優(yōu)化的效果。

(4)建立了合理的索引的同時,還要保證其能得到真正的使用,發(fā)揮其應(yīng)有的作用。就像拍電影,找到合適的演員不代表你就能把戲拍好,你還需要發(fā)揮每一位演員甚至群眾演員的優(yōu)點(diǎn)。首先如何確定所建立的索引是否真正得到了使用:可以通過SQL語句查詢,找出沒有使用到的索引:然后逐一進(jìn)行分析原因,并針對不同情況運(yùn)用相應(yīng)的解決方案,真正做到物盡其用。然后,索引可以被使用以后,還沒結(jié)束,你還得檢驗(yàn)索引是否達(dá)到了預(yù)期的效果,以免徒勞無功。看來不僅要建立適當(dāng)?shù)乃饕挥凶屗饕嘉锉M其用才能使數(shù)據(jù)庫的性能得到真正意義上的提高。

(5)避免相關(guān)子查詢

在進(jìn)行數(shù)據(jù)庫查詢時,最好避免數(shù)據(jù)的子查詢。當(dāng)然如果子查詢無法避免,那么就要另想辦法,比如在子查詢中過濾掉盡可能多的行。但這種方法多數(shù)情況下行不通。如果一個列的標(biāo)簽同時在主查詢和where子句中的查詢中出現(xiàn),那么很可能當(dāng)主查詢中的列值改變之后,子查詢就必須還得重新查詢一次。這樣查詢堆積的層越多,效率自然也就越低。因此最有效的方法還是盡量避免子查詢。

(6)用排序來取代非順序存取

其實(shí)如果我們能充分利用數(shù)據(jù)庫自身所具有的能力,同樣可以改進(jìn)查詢。例如可以利用數(shù)據(jù)庫的排序能力來替代非順序的存取。這是因?yàn)榉琼樞虼疟P存取是效率最為低下的操作,尤其在磁盤存取臂的來回移動時體現(xiàn)得更為明顯。為什么會出現(xiàn)這種情況呢?SQL語句隱藏了這一情況,使得我們在寫應(yīng)用程序時很容易寫出要求存取大量非順序頁的查詢。這時候?yàn)榱吮苊膺@一麻煩,取而代之的是運(yùn)用排序取代非順序來提高運(yùn)行速率。

(7)盡量避免不太容易的的正規(guī)表達(dá)式

正規(guī)表達(dá)式,即MATCHES和LIKE關(guān)鍵字支持通配符匹配的專業(yè)名詞。使用這種匹配時一般會特別耗費(fèi)時間。假如在這種字段上建立了索引,就算采用了合適的索引效率也不會得到明顯改善。如果把語句改為SELECT * FROM customer WHERE zip code >\"98000\",在執(zhí)行查詢時就會利用索引來查詢,那么顯然會大大提高查詢速度。

(8)注意消除對大型表行數(shù)據(jù)的順序存取

在嵌套查詢中,對表的順序存取對查詢效率可能會產(chǎn)生致命的影響。比如采用順序存取策略,一個嵌套3層的查詢,如果每層都查詢1000行,那么這個查詢就要查詢10億行數(shù)據(jù)。對于這種情況可以使用并集來避免順序存取。盡管在所有的檢查列上都有索引,但某些形式的where子句強(qiáng)迫優(yōu)化器使用順序存取。避免這種情況的主要方法還有復(fù)合索引。例如,兩列表,第一個工人考勤表包括出勤率,工作情況,獎懲情況等,;第二個經(jīng)營責(zé)任人表包括工作情況、日程安排和經(jīng)營戰(zhàn)略等,這時對兩個表作鏈接就可以在工作情況這個數(shù)據(jù)上面進(jìn)行鏈接充分利用復(fù)合索引的優(yōu)勢。

2 優(yōu)化SQL語句

采用優(yōu)化SQL語句的方法在使用索引時可以有效的提高查詢速度,但是如果SQL語句使用不恰當(dāng)?shù)脑挘⒌乃饕粌H不能發(fā)揮其作用,更會適得其反。所以我們應(yīng)該做到不但會寫SQL,還要寫出性能優(yōu)良的SQL語句。下面進(jìn)行具體說明。

(1)首先,在進(jìn)行查詢時,返回的值應(yīng)該是查詢所需要的。在查詢中應(yīng)該盡量減少對數(shù)據(jù)庫中的表的訪問的行列數(shù)。

(2)其次,合理使用EXISTS, NOT EXISTS字句

(3)再次,對于一些特殊的SQL語句,在使用時應(yīng)正確選擇, 在對數(shù)據(jù)庫查詢時,所使用的語句多種多樣,但選擇恰當(dāng)?shù)牡淖志淠軌蛴行У奶岣卟樵冃省?/p>

3 結(jié)束語

事半功倍,是提高效率的金玉良言,對于數(shù)據(jù)庫的查詢優(yōu)化也是如此。針對數(shù)據(jù)查詢的特點(diǎn)進(jìn)行各個擊破,一一剖析,達(dá)到減少查詢時間的最優(yōu)效果,這就是數(shù)據(jù)庫查詢優(yōu)化的使命。

主站蜘蛛池模板: 午夜国产在线观看| 婷婷六月色| 亚洲国产欧洲精品路线久久| 91精品国产自产在线观看| 国产高清不卡| 毛片在线播放网址| 一级在线毛片| 日本国产精品| 99视频国产精品| 亚洲欧美日本国产专区一区| 欧美一区二区三区国产精品| 青青草国产免费国产| 久久亚洲天堂| 亚洲中字无码AV电影在线观看| 中国美女**毛片录像在线| 在线99视频| 久久精品人人做人人爽| 亚洲一区二区在线无码| 日韩无码视频网站| 国产伦片中文免费观看| 一本二本三本不卡无码| 精品国产aⅴ一区二区三区 | 91年精品国产福利线观看久久| 67194在线午夜亚洲| 成人在线视频一区| 久久亚洲国产视频| 国产迷奸在线看| 3D动漫精品啪啪一区二区下载| 日韩中文精品亚洲第三区| 凹凸精品免费精品视频| 老司机午夜精品网站在线观看 | 99精品国产自在现线观看| 欧美在线导航| 亚洲三级影院| 超薄丝袜足j国产在线视频| 亚洲日韩精品伊甸| 亚洲人网站| 精品国产成人a在线观看| 久久青草视频| 欧美乱妇高清无乱码免费| 91在线国内在线播放老师| 这里只有精品在线播放| 无码国产偷倩在线播放老年人| 99热国产在线精品99| jizz国产视频| 最新痴汉在线无码AV| 特级毛片8级毛片免费观看| 久久天天躁狠狠躁夜夜2020一| 国产成人区在线观看视频| 国产精品美乳| 亚洲天堂视频在线免费观看| 国产超碰一区二区三区| 亚洲中文字幕久久无码精品A| 无码免费视频| 色成人综合| 四虎在线观看视频高清无码| 国产乱子伦精品视频| 亚洲无码高清免费视频亚洲| 幺女国产一级毛片| 亚洲精品自拍区在线观看| 国产精品毛片一区视频播| 国产精品va免费视频| 亚洲手机在线| 一级做a爰片久久毛片毛片| 欧美精品伊人久久| 国产a网站| a亚洲天堂| 蜜桃视频一区| 亚洲国产精品一区二区第一页免 | 国产成人精品优优av| 亚洲AⅤ综合在线欧美一区| 亚洲综合亚洲国产尤物| 久久天天躁狠狠躁夜夜躁| 亚洲色图欧美| 亚洲成人高清在线观看| 99re在线免费视频| 亚洲欧美一级一级a| 99ri精品视频在线观看播放| 91无码人妻精品一区二区蜜桃| 精品无码一区二区三区电影| 欧美高清国产| 亚洲综合极品香蕉久久网|