亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

MySQL技巧:做好Limit優(yōu)化

添加時(shí)間:2011-3-18  添加: admin 

我們?cè)诓樵償?shù)據(jù)時(shí),往往需要指定返回幾行數(shù)據(jù)。如現(xiàn)在有一個(gè)B/S架構(gòu)的應(yīng)用程序,其每一頁可能只顯示30條記錄。此時(shí)為了提高顯示的效率,一般就要求數(shù)據(jù)庫一次只返回三十條紀(jì)錄。等用戶按下一頁的時(shí)候,再從數(shù)據(jù)庫中返回30條記錄,以此類推。這可以縮短數(shù)據(jù)顯示的時(shí)間。當(dāng)查詢的基表比較大時(shí),這個(gè)措施非常有效。此時(shí)可以使用Limit關(guān)鍵字來實(shí)現(xiàn)這個(gè)需求。Limit子句可以被用于強(qiáng)制Select查詢語句返回指定的記錄數(shù)量。

  通常情況下,Limit關(guān)鍵字可以接受一個(gè)或者兩個(gè)數(shù)字參數(shù)。需要注意的是,這個(gè)參數(shù)必須是一個(gè)整數(shù)常量。如果用戶給定兩個(gè)參數(shù),則第一個(gè)參數(shù)表示第一個(gè)返回記錄行的偏移量,第二個(gè)參數(shù)則表示返回記錄行的最大數(shù)據(jù)。另外需要提醒的是,初始記錄行的偏移量是0,而不是1。不少用戶會(huì)在這里犯錯(cuò)誤。

  雖然使用了Limit語句來限制返回的記錄數(shù),從而可以提高應(yīng)用程序的工作效率。但是其也會(huì)給系統(tǒng)的性能帶來一些負(fù)面影響。如可能會(huì)導(dǎo)致全表掃描等等。為此筆者給出一些Limit關(guān)鍵字的優(yōu)化的建議,以供大家參考。

  建議一:靈活使用Limit 0子句

  根據(jù)Limit關(guān)鍵字的定義,如果參數(shù)為0的話,則其返回的是空記錄。這看起來好像沒有多少的意義。其實(shí)不然。在實(shí)際工作中,靈活使用這個(gè)0參數(shù),能夠給我們帶來很大的收獲。

  如現(xiàn)在數(shù)據(jù)庫工程師想要確認(rèn)一下某個(gè)查詢語句的有效性,如果直接運(yùn)行這個(gè)查詢語句,需要等待其返回的記錄。如果涉及的紀(jì)錄數(shù)量比較多,或者運(yùn)算邏輯比較復(fù)雜,那么需要等到比較長的時(shí)間。此時(shí)就可以在Select查詢語句中,使用Limit 0子句。只要查詢語句沒有語法上的錯(cuò)誤,這就可以讓數(shù)據(jù)庫快速的返回一個(gè)空集合。從而幫助數(shù)據(jù)庫設(shè)計(jì)人員迅速的判斷查詢語句的有效性。另外這個(gè)空集和中還會(huì)返回某個(gè)表的各個(gè)字段的數(shù)據(jù)類型。即通過這個(gè)Limit 0子句還可以查詢某個(gè)表的表結(jié)構(gòu)。

  可見靈活應(yīng)用Limir 0子句,確實(shí)能夠給我們帶來不小的收益。不過需要注意的是,在某些特定的場(chǎng)合下,這個(gè)子句可能不會(huì)奏效。如通常情況下,在Monitor工作環(huán)境中不支持這個(gè)Limit 0子句。此時(shí)結(jié)果只會(huì)顯示Empty Set,而不是我們所需要的結(jié)果。

  建議二:Limit與Group By結(jié)合使用

  Group By關(guān)鍵字主要用來對(duì)數(shù)據(jù)進(jìn)行分類匯總。不過在分類匯總之前,往往需要對(duì)數(shù)據(jù)先進(jìn)性排序。而Limit語句用來指定顯示的結(jié)果數(shù)量時(shí),往往也需要涉及到紀(jì)錄的分類匯總與排序的問題。如現(xiàn)在一個(gè)學(xué)校成績管理系統(tǒng)中,需要對(duì)學(xué)生的總分進(jìn)行排序。即先對(duì)學(xué)生各科成績進(jìn)行匯總,然后顯示其排名為前50的紀(jì)錄。此時(shí)就需要同時(shí)用到Group By子句和Limit子句。其實(shí)從這個(gè)案例中我們也可以看出,這兩個(gè)子句相互依賴的特性。正是因?yàn)檫@種特性(經(jīng)常相互結(jié)合使用),為此結(jié)合Group By子句可以提高Limit的查詢效率。

  這主要是因?yàn)閮烧呷绻黄鹗褂玫脑挘琇imit關(guān)鍵字將不會(huì)再重復(fù)計(jì)算任何不必要的Group By的值。換句話說,在某些情況下,Group By子句能夠通過順序來讀取鍵或者在鍵上做排序來解決分類匯總時(shí)的排序問題,然后再計(jì)算摘要直到關(guān)鍵字的值的改變?yōu)橹埂H绱说脑挘瑑蓚(gè)子句所需要做的一些共同性的工作,只要做一次即可。這就可以從另外一次角度用來提高應(yīng)用系統(tǒng)的性能。相比先做一個(gè)視圖對(duì)數(shù)據(jù)進(jìn)行分類匯總的運(yùn)算,再使用一個(gè)查詢語句來抽取特定數(shù)量的記錄,效率就要高一點(diǎn)。因?yàn)楹笳呤菍蓚(gè)子句分開來使用,就無法享受到結(jié)合使用所體現(xiàn)的優(yōu)勢(shì)。

關(guān)健詞:Limit優(yōu)化

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站