分享人:张明顺
1.背景介绍
2.知识剖析
3.常见问题
4.编码实战
5.扩展思考
6.参考文献
7.更多讨论
使用SELECT查询时,如果结果集数据量很大,比如几万行数据,放在一个页面显示的话数据量太大,所以需要分页显示。
分页就是将数据以多页展示出来,使用分页的目的是为了提高用户的体验
1.物理分页
2.逻辑分页
1.物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结果。
2.逻辑分页依赖的是程序员编写的代码。数据库返回的不是分页结果,而是全部数据,然后再由程序员通过代码获取分页数据,常用的操作是一次性从数据库中查询出全部数据并存储到List集合中,因为List集合有序,再根据索引获取指定范围的数据。
sql语句:select * from 表名 limit 起始记录数-1,显示的记录数;
注意:如果从第1条记录开始查询,limit 后面跟的数字是要查询记录的起始数减1,即0
查询student表里第1个记录至后10条记录
例:select * from student limit 0,10;
查询student表里字段为id,name,school的记录从第101条开始至后20条
例:select id,name,school from student limit 100,20;
怎么进行分页数据的查询,如何判断是否有下一页?
获取总的记录数,拿记录总数除以每页的记录数,只要能取余,就有下一页
例如有21条数据,每页10条,相除等于2余1,就能判断出可以分成完整的2页和只有1条数据的第3页
SELECT * FROM student WHERE ID >=(select ID from student limit 10000000, 1) limit 10;
查询student表里ID大于或等于(student表里第一千万条记录的ID字段的值)取前10条
如第一千万条记录的ID=10001000
SELECT * FROM student WHERE ID >= 10001000 limit 10;
MySQL大数据量分页查询方法及其优化
https://www.cnblogs.com/geningchao/p/6649907.html
谢谢大家!