如何在MySQL数据库中使用limit?

本篇文章主要介绍的是如何在MySQL数据库中使用limit,相信很多朋友都不知道怎么搞吧,因此,今日小杜就分享给大家做一下参考,感兴趣的朋友不妨来看看,希望对你有所帮助。

一、limit语法

要知道,limit语法是可以支持两个参数,那就是offset和limit。前者表示偏移量,后者表示取钱limit条数据。

比如:
在这里插入图片描述

从上面就可以看出来,limit n等价于limit 0,n

二、性能分析

实际使用中,我们会发现,在分页的后面一些页,加载会变慢,也就是说:
在这里插入图片描述

语句执行较慢,那么我们首先来测试一下。

首先是在offset较小的情况下拿100条数据,数据总量为200左右,然后逐渐增大offset。
在这里插入图片描述

可以看到随着offset的增大,性能也越来越差。

这是为什么呢?因为limit 10000,10的语法实际上是MySQL查找到钱10010条数据,之后丢弃前面的10000行,这个步骤其实是浪费掉的。

三、优化

1、用id优化

先找到上次分页的最大ID,然后利用id商的索引来查询,类似于select * from user where id>1000000 limit 100.

这样的效率非常快,因为主键上是有索引的,但是这样是有个缺点,就是ID必须是连续的,并且查询不能有where语句,因为where语句会造成过滤数据。

2、用覆盖索引优化

MySQL的查询完全命中索引的时候,称为覆盖索引,是非常快的,因为查询只需要在索引上进行查找,之后可以直接返回,而不用再回数据表拿数据,因此我们可以先查出索引的ID,然后根据id拿数据。
在这里插入图片描述

耗时0.2秒

本文关于如何在MySQL数据库中使用limit的介绍就到此结束,希望大家看完以上内容有一定的收获,如果想学习更多相关知识,可以关注摩杜云行业资讯频道,更多精彩知识等着你来学习。感谢各位对摩杜云的支持!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值