MySQL |
您所在的位置:网站首页 › 分页怎么用 › MySQL |
对于比较多的数据,如果在一个页面全部显示,查看起来会眼花缭乱。如果能进行分页显示,将更加快捷、清新的浏览! 这样,我们也容易查看前几条或者中间某几行数据。 语法(格式):SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset; 说明:LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量(索引),第二个参数指定返回记录行的最大数目(显示的个数)。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 例如:对product表进行分页查询: SELECT * FROM product LIMIT 0,3; SELECT * FROM product LIMIT 3,3; 以上2条语句执行之后,可以看到,索引第一个是0,第二个是3,而后面的(显示的个数)都是3。 不难看出,startIndex = (index-1)*3 startIndex是索引值,index是页数,3是显示的个数。 另外,我们看看以下两种写法的显示结果: 1.SELECT * FROM product LIMIT 2,3; 我们反过来推算,2对应pid从3开始,0对应pid从1开始,同样都是显示3条数据,那么1对应pid应该是从2开始 显示结果正如猜测一致! 简单理解,索引(如:0)对应数据表的第1条数据(如:product的pid的值为1);显示的个数3,就是每次每页显示的数据3条。 2.SELECT * FROM product LIMIT 3; 不难看出,我们是省去了索引值(只给定一个参数),它表示返回最大的记录行数目(如:3)。 如果改成5,也就会显示前5条记录
Mysql的分页查询语句的性能分析 MySQL的LIMIT语法相对其他的数据库(语句、语法)显得优雅,使用LIMIT来分页效率更高! 最基本的分页方式:SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ... 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。 子查询的分页方式: 随着数据量的增加,页数会越来越多,查看后几页的SQL,例如:
然而,就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。 此时,我们可以通过子查询的方式来提高分页效率,大致如下:
JOIN分页方式: 例如: 可以进行测试,join分页和子查询分页的效率基本在一个等级上,消耗的时间也基本一致。 为什么会这样呢?因为子查询是在索引上完成的,而普通的查询时在数据文件上完成的,通常来说,索引文件要比数据文件小得多,所以操作起来也会更有效率。 实际可以利用类似策略模式的方式去处理分页,比如判断如果是一百页以内,就使用最基本的分页方式,大于一百页,则使用子查询的分页方式。 持续更新之中... |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |