mysql分页功能怎么实现 mysql分页如何实现( 六 )


mysql如何实现分页Mysql的分页关键点在查询时的 limit $iStart,$iEnd;//起初值与总长度
举例:selece * from myTable1 order by id desc limit 0,10;
从0开始取前10条数据,取第二页的内容时,limit 10,10;即可
如有疑问去博客加好友,不清楚的再问我,有时间我再写几篇这样的文章
mysql如何做分页查询?直接用limit start, count分页语句mysql分页功能怎么实现,也是mysql分页功能怎么实现我程序中用mysql分页功能怎么实现的方法mysql分页功能怎么实现:
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里怎么实现分页啊记得我还在念大学的时候,一位教我们单片机的老师说了一句话:"学习编程刚开始你就得照葫芦画瓢...",以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些 , 更快一些,那我们又该怎么做呢?
第一部分:看一下分页的基本原理:
第一部分:看一下分页的基本原理:
mysql explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20
***************** 1. row **************
id: 1
select_type: SIMPLE
table: message
type: index
possible_keys: NULL
key: PRIMARY
key_len: 4
ref: NULL
rows: 10020
Extra:
1 row in set (0.00 sec)对上面的mysql语句说明:limit 10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里,如果是limit 100000,100,需要扫描100100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣 。文中还提到limit n性能是没问题的,因为只扫描n行 。
第二部分:根据雅虎的几位工程师带来了一篇Efficient Pagination Using MySQL的报告内容扩展:在文中提到一种clue的做法 , 给翻页提供一些线索 , 比如还是SELECT * FROM message ORDER BY id DESC,按id降序分页,每页20条,当前是第10页,当前页条目id最大的是1020,最小的是1000,如果我们只提供上一页、下一页这样的跳转(不提供到第N页的跳转),那么在处理上一页的时候SQL语句可以是:
完整请到:
【mysql分页功能怎么实现 mysql分页如何实现】关于mysql分页功能怎么实现和mysql分页如何实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读