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)化的使命。

主站蜘蛛池模板: 国产va在线| 一个色综合久久| 国产麻豆福利av在线播放| 亚洲一区色| 99re视频在线| 亚洲日韩Av中文字幕无码| 国产91在线免费视频| 日本福利视频网站| 国产精品亚洲五月天高清| 亚洲乱亚洲乱妇24p| 91国内在线观看| 欧美在线精品一区二区三区| 国产无码网站在线观看| 国产麻豆精品久久一二三| 成人国产小视频| 国产成人AV男人的天堂| 伊伊人成亚洲综合人网7777| 久草热视频在线| 亚洲第一极品精品无码| 免费看黄片一区二区三区| 97超爽成人免费视频在线播放| 91丨九色丨首页在线播放| 免费国产小视频在线观看| 欧美一级夜夜爽www| 国产第三区| 97视频精品全国免费观看| 国产亚洲欧美在线人成aaaa| 日本国产精品一区久久久| 久青草免费在线视频| 波多野结衣中文字幕久久| 欧美一级在线看| 中文字幕第1页在线播| 精品国产成人a在线观看| 99在线观看视频免费| 亚洲日本韩在线观看| 国产精品原创不卡在线| 国产性生大片免费观看性欧美| 精品欧美一区二区三区久久久| 伊人久久福利中文字幕| 永久免费精品视频| 国产午夜一级毛片| 国产精品浪潮Av| 久久免费观看视频| 亚洲日韩精品综合在线一区二区| 亚洲人成网站日本片| 免费毛片全部不收费的| 国国产a国产片免费麻豆| 亚洲愉拍一区二区精品| 网友自拍视频精品区| 黄色国产在线| 亚洲第一区在线| 成年人视频一区二区| 高清不卡一区二区三区香蕉| 国产麻豆精品久久一二三| 日本妇乱子伦视频| 久久精品娱乐亚洲领先| 国内丰满少妇猛烈精品播| 欧美亚洲第一页| 亚洲天堂网在线观看视频| 国产精品午夜电影| 不卡网亚洲无码| 91www在线观看| 国产一级片网址| a欧美在线| 久久国产精品影院| 99re热精品视频中文字幕不卡| 无码不卡的中文字幕视频| 超碰精品无码一区二区| 丰满的少妇人妻无码区| 一级毛片在线免费视频| 亚洲人成网址| 亚洲h视频在线| 亚洲免费三区| 美臀人妻中出中文字幕在线| 黄色成年视频| 亚洲侵犯无码网址在线观看| 91香蕉视频下载网站| 亚洲精品无码在线播放网站| 日韩 欧美 小说 综合网 另类| 亚洲人成影视在线观看| 在线五月婷婷| 色有码无码视频|