首页互联网mysql分页(MySQL的三种分页方式)

mysql分页(MySQL的三种分页方式)

编程之家2024-02-04103次浏览

一、MYSQL中LIMIT用法

LIMIT是MySQL内置函数,其作用是用于限制查询结果的条数。

mysql分页(MySQL的三种分页方式)

1)其语法格式如下:

LIMIT[位置偏移量,]行数

其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开始显示,索引值从0开始,即第一条记录位置偏移量是0,第二条记录的位置偏移量是1,依此类推...,第二个参数为“行数”即指示返回的记录条数。

位置偏移量可以理解为跳过前xx条记录(元组).

2)基本用法

/*当没有指定位置偏移量时,只取4条时,可以这样写*/

mysql分页(MySQL的三种分页方式)

SELECT*FROMYourTableNameLIMIT4;

/*当指定了位置偏移量时,从第3条起取4条时,可以这样写*/

/*因为索引是从0开始计数的,所以第3条对应的索引就是2*/

SELECT*FROMYourTableNameLIMIT2,4;

3)应用场合:分页

//后台计算出页码、页数(页大小)

intcurPage=2;

mysql分页(MySQL的三种分页方式)

intpageSize=10;

intstartRow=(curPage-1)*pageSize;

SELECT*FROMYourTableNameLIMITstartRow,pageSize;

二、mysql 数据量大的表如何做分页查询

直接用limit start, count分页语句,也是我程序中用的方法:

select* from product limit start, count

当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条),如下:

select* from product limit 10, 20 0.016秒

select* from product limit 100, 20 0.016秒

select* from product limit 1000, 20 0.047秒

select* from product limit 10000, 20 0.094秒

我们已经看出随着起始记录的增加,时间也随着增大,这说明分页语句limit跟起始页码是有很大关系的,那么我们把起始记录改为40w看下(也就是记录的一般左右) select* from product limit 400000, 20 3.229秒

再看我们取最后一页记录的时间

select* from product limit 866613, 20 37.44秒

难怪搜索引擎抓取我们页面的时候经常会报超时,像这种分页最大的页码页显然这种时

间是无法忍受的。

从中我们也能总结出两件事情:

1)limit语句的查询时间与起始记录的位置成正比

2)mysql的limit语句是很方便,但是对记录很多的表并不适合直接使用。

三、MySQL分页的sql语言怎么写

1、首先我们建立一个表表的数据,这个表里有25条数据,id从1到25。(下图是部分截图)

2、要分页数据,首先我们假设一页有10条数据,我们可以用mysql的 limit关键字来限定返回多少条数据。并且用order by来排序数据,这里用 id来排序。所以第一页的sql可以如图这样写。

3、执行后得到的数据如图,就是 id从1到10的前10条数据,因为我们是按id升序来排序的。

4、上面第一页的sql是简化的写法,完整的写法如图,得到的结果和上图的一模一样。代码里 limit 0, 10的意思是从第一条数据开始,取10条数据。(注意的是第一条数据是从0开始的)

5、那么第二页的数据,关键是要知道是从哪一条数据开始,可以用这个公式得到:(页码-1)*每页显示多少条,即(2-1)* 10= 10,所以sql语句如图, limit 10, 10。

6、执行后,结果正确,得到id从11到20的10条数据。

7、同理第三页数据的sql如图,<br/>就是 limit 20, 10。

8、查询的结果如图,因为这页只剩下5条数据了,所以只显示5条数据。如果你有更多页的数据,后面的数据只需要按上面的公式,得到从哪行开始,就可以写对应的sql语句了。

远程备份(远程克隆Linux硬盘:简单高效的数据备份方法)lcd1602程序(lcd1602例程)