[導讀] 我的這段程式碼是大數據量時提高分頁的效率的測試程式碼--提高分頁效率:實作分頁時只讀取顯示資料,需要先在資料庫建立資料庫「TestForPaging」use TestForPaginggo- -建立表格SomeDatacreate table SomeData(id int
我的這段程式碼是大數據量時提高分頁的效率的測試程式碼
--提高分頁效率:實現分頁時只讀取顯示資料,需先在資料庫建立資料庫「TestForPaging」
use TestForPaging go
--建立表格SomeData
create table SomeData ( id int primary key, name varchar(30) null, description text ) go
--插入資料
insert into SomeData values(1,'num1','第1条') go insert into SomeData values(2,'num2','第2条') go insert into SomeData values(3,'num3','第3条') go insert into SomeData values(4,'num4','第4条') go insert into SomeData values(5,'num5','第5条') go
--資料條目總數
select count(*) from SomeData go
--為每筆記錄新增一個資料等級
select name,description,ROW_NUMBER() over(order by id desc)as dataLevel from SomeData go
--查看指定的資料等級間的資料條目
select dataLevel,name,description from (select name,description,row_number() over(order by id desc)as dataLevel from SomeData) as datawithleverl where dataLevel between 2 and 4 go
--實現查看指定的資料等級間的資料條目的預存程序
create procedure GetDataPaged ( @startRowIndex int, @maximumRows int, @sort varchar ) AS
--確保指定sort
if len(@sort)=0 set @sort='id'
--帶參數的查詢
select dataLevel,name,description from (select name,description,row_number() over(order by @sort desc)as dataLevel from SomeData) AS datawithleverl WHERE dataLevel > (@startRowIndex*10) AND dataLevel <= (@startRowIndex*10 + @maximumRows) go
以上是 MySQL提資料高分頁效率的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!