【分页】分页的原理

页的原理:

    假分页/逻辑分页/内存  分页: 一次性把所有数据全部查询出来存放到内存中,每次翻页都从内存中去截取指定数量的数据.

                                 优点:每次翻页比较快,简单;   缺点:若数据过大,可能造成内存溢出问题.

    真分页/物理分页/数据库分页: 每次翻页的时候都从数据库中取出指定数量的数据(MySQL: LIMIT ?,?语句).

                                 优点:若数据过大,不会造成内存溢出问题;    缺点:复杂,每次翻页较慢.

-------------------------------------------------------------------------------------------------------

currentPage:当前页

pageSize:每页最多显示多少条

beginPage=1:首页

prevPage:上一页

nextPage:下一页

totalPage:总页数/末页

totalCount:总条数

-------------------------------------------------------------------------------------------------------

分页的原理:两条SQL语句:

     1):查询符合条件的结果集.

        SELECT * FROM 表名 [WHERE 条件1 AND 条件2] [ORDER BY .....] LIMIT ?,?;

           第一个?:当前页从哪一个索引开始截取数据:start/begin/beginIndex(从0开始).

                    beginIndex = (currentPage - 1) * pageSize;

           第二个?:截取多少条数据:pageSize;

     2):查询符合条件的结果总数.

        SELECT COUNT(*) FROM 表名 [WHERE 条件1 AND 条件2];

-------------------------------------------------------------------------------------------------------

用户传入两条数据(用户设置的):

    currentPage = 1;

    pageSize = 10;

-------------------------------------------------------------------------------------------------------

程序员计算三个值:

   总页数/末页(totalPage):

       totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;

   上一页(prevPage):

       prevPage = currentPage - 1 >= 1 ? currentPage - 1 : 1;

   下一页(nextPage):

       nextPage = currentPage + 1 <= totalPage ? currentPage + 1 : totalPage;

posted @ 2017-05-04 16:55  Qingyun_Qearl  阅读(595)  评论(0)    收藏  举报