MySQL

您所在的位置:网站首页 分页怎么用 MySQL

MySQL

2023-11-16 09:18| 来源: 网络整理| 查看: 265

对于比较多的数据,如果在一个页面全部显示,查看起来会眼花缭乱。如果能进行分页显示,将更加快捷、清新的浏览!

这样,我们也容易查看前几条或者中间某几行数据。

语法(格式):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