發(fā)表日期:2013-03-13 文章編輯:天天 瀏覽次數(shù):13 標(biāo)簽:數(shù)據(jù)庫查詢的分頁優(yōu)化技巧
數(shù)據(jù)庫查詢的分頁優(yōu)化技巧
分頁瀏覽功能是常見的Web應(yīng)用功能,對于MySQL數(shù)據(jù)庫來說可以很輕松的使用limit語句實現(xiàn)分頁,而對于SQL Server數(shù)據(jù)庫來說,常見的方法是使用數(shù)據(jù)集本身的游標(biāo)實現(xiàn)分頁,這種方法對于少量數(shù)據(jù)來說沒什么問題,但是對于稍大一點的數(shù)據(jù)量,例如幾十萬條數(shù)據(jù),則查詢速度會降低很多,這里我介紹一種常用的技巧,只要簡單的重新構(gòu)造一下查詢SQL語句,就能大幅提高查詢性能的方法。
在分頁算法中,影響查詢速度的關(guān)鍵因素在于返回數(shù)據(jù)集的大小,我們先在數(shù)據(jù)表中設(shè)置一個名為id的主鍵,數(shù)值為自增量的整數(shù),然后通過重構(gòu)查詢SQL語句,就可以實現(xiàn)SQL查詢的優(yōu)化,重構(gòu)的SQL如下所示
以下為引用的內(nèi)容:
select top 頁大小 *
from table1
where id<=
(select min (id) from
(select top ((頁碼-1)*頁大小) id from table1 order by id desc) as T
)
order by id desc下面的JSP演示代碼中,intPageSize為頁大小,intPage為頁碼,id為主鍵,演示了操作一個t_Product表,并加入各類查詢條件之后的重構(gòu)SQL的主要語句,經(jīng)過實際調(diào)試,經(jīng)過這樣簡單優(yōu)化后的SQL查詢速度遠(yuǎn)遠(yuǎn)高于優(yōu)化前的查詢速度。
以下為引用的內(nèi)容:
String sql=" from t_Product where 1=1 and ";
String ProductName = request.getParameter("ProductName");
if (ProductName!=null) sql=sql+"ProductName like '%" + ProductName + "%' and " ;
sql=sql.substring(0,sql.length()-4); // 去掉尾部的 and 字符串
sql="select top " + String.valueOf(intPageSize) + " *" +sql+" and id <=(select min(id) from (select top " + String.valueOf(intPage*intPageSize) + " id " + sql + " order by id desc) as T) "; //通過子查詢加快速度
sql=sql+" order by id desc ";
企業(yè)網(wǎng)站建設(shè)解決方案 營銷型網(wǎng)站建設(shè)解決方案 行業(yè)門戶網(wǎng)站建設(shè)解決方案 外貿(mào)網(wǎng)站解建設(shè)決方案 品牌形象網(wǎng)站建設(shè)解決方案 購物商城網(wǎng)站建設(shè)解決方案 政府網(wǎng)站建設(shè)解決方案 手機(jī)網(wǎng)站建設(shè)解決方案 教育培訓(xùn)網(wǎng)站建設(shè)解決方案 珠寶高端奢飾品網(wǎng)站建設(shè)解決方案 房地產(chǎn)、地產(chǎn)項目網(wǎng)站建設(shè)解決方案 集團(tuán)、上市企業(yè)網(wǎng)站建設(shè)解決方案 數(shù)碼、電子產(chǎn)品網(wǎng)站建設(shè)解決方案 美容、化妝品行業(yè)網(wǎng)站建設(shè)解決方案
10年專業(yè)互聯(lián)網(wǎng)服務(wù)經(jīng)驗 重慶最專業(yè)網(wǎng)站團(tuán)隊 資深行業(yè)分析策劃 B2C營銷型網(wǎng)站建設(shè)領(lǐng)先者 最前沿視覺設(shè)計、研發(fā)能力 時刻最新技術(shù)領(lǐng)先研發(fā)能力 具有完備的項目管理 完善的售后服務(wù)體系 深厚的網(wǎng)絡(luò)運營經(jīng)驗
中技互聯(lián)一直秉承專業(yè)、誠信、服務(wù)、進(jìn)取的價值觀,堅持優(yōu)秀的商業(yè)道德,以用戶最終價值為導(dǎo)向,向用戶提供優(yōu)質(zhì)產(chǎn)品和優(yōu)質(zhì)服務(wù),從而贏得了用戶的信賴。始終以不懈的努力、更高的目標(biāo)來要求自己。
主營業(yè)務(wù):網(wǎng)站建設(shè) | 重慶網(wǎng)站建設(shè) | 重慶網(wǎng)站設(shè)計 | 重慶網(wǎng)站制作 | 重慶網(wǎng)頁設(shè)計 | 重慶網(wǎng)站開發(fā)