首頁 > 資料庫 > mysql教程 > MySQL提資料高分頁效率

MySQL提資料高分頁效率

黄舟
發布: 2017-02-20 11:48:31
原創
1278 人瀏覽過

[導讀] 我的這段程式碼是大數據量時提高分頁的效率的測試程式碼--提高分頁效率:實作分頁時只讀取顯示資料,需要先在資料庫建立資料庫「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中文網(www.php.cn)!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板