現(xiàn)在一般常用的有以下2種方法: 1. select top @pagesize * from table1 where id not in (select top @pagesize*(@page-1) id from table1 order by id) order by id 2. select * from (select top @pagesize * from (select top @pagesize*@page * from table1 order by id) a order by id desc) b order by id 哪種方法更好?試了一下. 做兩個table,各有1萬條記錄,一個table的id有index,一個沒有 圖1,沒有index的table,取第1000-1100條記錄 圖2,沒有index的table,取第9000-9100條記錄 圖3,有index,取第1000-1100條記錄 圖4,有index,取第9000-9100條記錄 可以發(fā)現(xiàn)sort的字段建立了index的條件下,第1個方法快很多,特別是查到后面頁數(shù)的時候.原因就在于第2個方法中,第一次做了select 后,再做自查詢時,index已經沒有了.sort就會非常影響性能了. |
|
來自: 韻朵之家 > 《數(shù)據(jù)庫》