当前位置:Gxlcms > mysql > MySQL提数据高分页效率

MySQL提数据高分页效率

时间:2021-07-01 10:21:17 帮助过:33人阅读

[导读] 我的这段代码是大数据量时提高分页的效率的测试代码--提高分页效率:实现分页时只读取显示数据,需要先在数据库创建数据库“TestForPaging”use TestForPaginggo--创建表SomeDatacreate table SomeData(id int

我的这段代码是大数据量时提高分页的效率的测试代码
--提高分页效率:实现分页时只读取显示数据,需要先在数据库创建数据库“TestForPaging”

  1. use TestForPaging
  2. go

--创建表SomeData

  1. create table SomeData
  2. (
  3. id int primary key,
  4. name varchar(30) null,
  5. description text
  6. )
  7. go

--插入数据

  1. insert into SomeData values(1,'num1','第1条')
  2. go
  3. insert into SomeData values(2,'num2','第2条')
  4. go
  5. insert into SomeData values(3,'num3','第3条')
  6. go
  7. insert into SomeData values(4,'num4','第4条')
  8. go
  9. insert into SomeData values(5,'num5','第5条')
  10. go

--数据条目总数

  1. select count(*) from SomeData
  2. go

--给每条记录添加一个数据级别

  1. select name,description,ROW_NUMBER() over(order by id desc)as dataLevel from SomeData
  2. go

--查看指定的数据级别间的数据条目

  1. select dataLevel,name,description from
  2. (select name,description,row_number() over(order by id desc)as dataLevel from SomeData)
  3. as datawithleverl where dataLevel between 2 and 4
  4. go

--实现查看指定的数据级别间的数据条目的存储过程

  1. create procedure GetDataPaged
  2. (
  3. @startRowIndex int,
  4. @maximumRows int,
  5. @sort varchar
  6. )
  7. AS

--确保指定sort

  1. if len(@sort)=0
  2. set @sort='id'

--带参数的查询

  1. select dataLevel,name,description from
  2. (select name,description,row_number() over(order by @sort desc)as dataLevel from SomeData) AS datawithleverl
  3. WHERE dataLevel > (@startRowIndex*10) AND dataLevel <= (@startRowIndex*10 + @maximumRows)
  4. go

以上就是 MySQL提数据高分页效率的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

人气教程排行