數(shù)據(jù)庫(kù)查詢的分頁(yè)優(yōu)化技巧
分頁(yè)瀏覽功能是常見(jiàn)的Web應(yīng)用功能,對(duì)于MySQL數(shù)據(jù)庫(kù)來(lái)說(shuō)可以很輕松的使用limit語(yǔ)句實(shí)現(xiàn)分頁(yè),而對(duì)于SQL Server數(shù)據(jù)庫(kù)來(lái)說(shuō),常見(jiàn)的方法是使用數(shù)據(jù)集本身的游標(biāo)實(shí)現(xiàn)分頁(yè),這種方法對(duì)于少量數(shù)據(jù)來(lái)說(shuō)沒(méi)什么問(wèn)題,但是對(duì)于稍大一點(diǎn)的數(shù)據(jù)量,例如幾十萬(wàn)條數(shù)據(jù),則查詢速度會(huì)降低很多,這里我介紹一種常用的技巧,只要簡(jiǎn)單的重新構(gòu)造一下查詢SQL語(yǔ)句,就能大幅提高查詢性能的方法。
在分頁(yè)算法中,影響查詢速度的關(guān)鍵因素在于返回?cái)?shù)據(jù)集的大小,我們先在數(shù)據(jù)表中設(shè)置一個(gè)名為id的主鍵,數(shù)值為自增量的整數(shù),然后通過(guò)重構(gòu)查詢SQL語(yǔ)句,就可以實(shí)現(xiàn)SQL查詢的優(yōu)化,重構(gòu)的SQL如下所示
以下為引用的內(nèi)容: select top 頁(yè)大小 * |
下面的JSP演示代碼中,intPageSize為頁(yè)大小,intPage為頁(yè)碼,id為主鍵,演示了操作一個(gè)t_Product表,并加入各類查詢條件之后的重構(gòu)SQL的主要語(yǔ)句,經(jīng)過(guò)實(shí)際調(diào)試,經(jīng)過(guò)這樣簡(jiǎn)單優(yōu)化后的SQL查詢速度遠(yuǎn)遠(yuǎn)高于優(yōu)化前的查詢速度。
以下為引用的內(nèi)容: String sql=" from t_Product where 1=1 and "; |
標(biāo)簽:
免責(zé)聲明:本站網(wǎng)站部分圖片及文字轉(zhuǎn)載于網(wǎng)絡(luò),轉(zhuǎn)載目的在于傳遞更多信息。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)聯(lián)系本網(wǎng)站,我們將在第一時(shí)間刪除。