【问题标题】:pagination using mysql使用mysql进行分页
【发布时间】:2022-01-08 06:37:01
【问题描述】:

我正在使用这种技术对 sql server 进行分页,并且效果很好。 mysql怎么办

这是我的 sql 代码

OFFSET 1 ROWS FETCH NEXT 20 ROWS ONLY 

但是mysql呢?

【问题讨论】:

    标签: mysql sql pagination


    【解决方案1】:

    MySQL Data - Best way to implement paging? 之类的答案会告诉您这是查询的一般形式:

    SELECT ...
    ORDER BY <expr>
    LIMIT <count> OFFSET <skip>;
    

    但请注意,MySQL 确实会检查 所有行,直到 &lt;skip&gt; + &lt;count&gt;。因此,随着您在分页数据集中前进,它的成本就越高。

    更好的策略是使用主键:

    SELECT ...
    WHERE id > ?
    ORDER BY id
    LIMIT <count>;
    

    这仅检查&lt;count&gt; 行,从查询参数中指定值之后的第一行开始。当您对大型结果集进行分页时,这对于可伸缩性来说要好得多,但是您当然需要知道要搜索的正确 id 值。

    如果您在查看页面N之后查看页面N+1,那么您的优势是您可以从查看页面N的结果中获取最大id值,并将其用作页面的起点N+1.

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 2011-07-18
      • 2015-05-16
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      相关资源
      最近更新 更多