MySQL中如何使用limit
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章将为大家详细讲解有关MySQL中如何使用limit,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。limit语法limit语法支持两个参数,offset和li
千家信息网最后更新 2024年11月27日MySQL中如何使用limit
这篇文章将为大家详细讲解有关MySQL中如何使用limit,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
limit语法
limit语法支持两个参数,offset和limit,前者表示偏移量,后者表示取前limit条数据.
例如:
## 返回符合条件的前10条语句 select * from user limit 10## 返回符合条件的第11-20条数据select * from user limit 10,20
从上面也可以看出来,limit n 等价于limit 0,n.
性能分析
实际使用中我们会发现,在分页的后面一些页,加载会变慢,也就是说:
select * from user limit 1000000,10
语句执行较慢.那么我们首先来测试一下.
首先是在offset较小的情况下拿100条数据.(数据总量为200左右).然后逐渐增大offset.
select * from user limit 0,100 ---------耗时0.03sselect * from user limit 10000,100 ---------耗时0.05sselect * from user limit 100000,100 ---------耗时0.13sselect * from user limit 500000,100 ---------耗时0.23sselect * from user limit 1000000,100 ---------耗时0.50sselect * from user limit 1800000,100 ---------耗时0.98s
可以看到随着offset的增大,性能越来越差.
这是为什么呢?因为limit 10000,10的语法实际上是mysql查找到前10010条数据,之后丢弃前面的10000行,这个步骤其实是浪费掉的.
优化
用id优化
先找到上次分页的最大ID,然后利用id上的索引来查询,类似于select * from user where id>1000000 limit 100.
这样的效率非常快,因为主键上是有索引的,但是这样有个缺点,就是ID必须是连续的,并且查询不能有where语句,因为where语句会造成过滤数据.
用覆盖索引优化
mysql的查询完全命中索引的时候,称为覆盖索引,是非常快的,因为查询只需要在索引上进行查找,之后可以直接返回,而不用再回数据表拿数据.因此我们可以先查出索引的ID,然后根据Id拿数据.
select * from (select id from job limit 1000000,100) a left join job b on a.id = b.id;
耗时0.2秒.
关于"MySQL中如何使用limit"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
数据
索引
语句
查询
篇文章
语法
实际
性能
更多
条件
不错
实用
最大
不用
两个
也就是
也就是说
内容
参数
实际上
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北京明嘉大有网络技术
计算机通信网络安全维护
yy服务器挂号
广告灯箱软件开发步骤
泗洪大型网络技术参考价格
金融wind数据库终端怎么下载
保健食品药品监督管理局数据库
大学学软件开发用什么笔记本
上海电商软件开发哪家好
方舟进非官方服务器总连接超时
戴尔服务器BIOS虚拟化
维护网络安全增强安全意识
达梦数据库 java 驱动
服务器是发送还是接收
数据库系统分析师通过率
挖矿网络安全案例
苹果手机怎么切换数据库
散心民宿软件开发
自己实现数据库赖加载
浙江正规网络技术要多少钱
软件开发公司选址
江苏智能网络技术定义
大型数据库的搭建
1.8服务器ip
嵌入式和网络安全前景
EI指的是什么数据库
机动都市阿尔法服务器区别
户苗网络安全手抄报
vpn服务器设置
ibm服务器主板上的电池