MySQL 分页查询limit性能缺陷和优化方案 您所在的位置:网站首页 mysql能分页查询吗 MySQL 分页查询limit性能缺陷和优化方案

MySQL 分页查询limit性能缺陷和优化方案

2024-06-02 22:53| 来源: 网络整理| 查看: 265

MySQL使用 limit 分页:

limit m,n

其中,m是偏移量,n是要查询的数量。

当偏移量m过大的时候,查询效率会很低。因为MySQL是先查出m+n个数据,然后抛弃掉前m个数据。

优化方法:可以通过子查询查出查出目标数据集合的第一个数据所在的行,然后用 >= 操作。

如下:

SELECT * FROM articles WHERE id >= (SELECT id FROM articles WHERE category_id = 123 ORDER BY id LIMIT 10000, 1) LIMIT 10

子查询在主键id上先查到第一个目标数据的id,然后外层查询根据这个id,使用 >= 方式获取10条数据。

因为主键id有索引,所以子查询速度很快。

对于有大数据量的mysql表来说,使用LIMIT分页存在很严重的性能问题。

优化思想:避免数据量大时扫描过多的记录

在这里插入图片描述

为了保证index索引列连续,可以为每个表加一个自增字段,并且加上索引。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有