发现问题

当我们展示一个列表中的内容时,难免会遇到分页问题,因为列表中的内容数量可能很多,但是用户能一次看到的界面大小是有限的,不可能一个界面展示所有的内容,从后端一次性取太多的数据也会给后端造成额外的压力。
通常分页查询的时候会使用这样的语句:
SELECT * FROM table where condition1 = 0 and condition2 = 0 and condition3 = -1 and condition4 = -1 order by id asc LIMIT 2000 OFFSET 50000
当offset特别大时,这条语句的执行效率会明显减低,而且效率是随着offset的增大而降低的。
原因为:
MySQL并不是跳过offset行,而是取offset+N行,然后返回放弃前offset行,返回N行,当offset特别大,然后单条数据也很大的时候,每次查询需要获取的数据就越多,自然就会很慢。
优化方案:
SELECT * FROM table JOIN (select id from table where condition1 = 0 and condition2 = 0 and condition3 = -1 and condition4 = -1 order by id asc LIMIT 2000 OFFSET 50000) as tmp using(id)
或者
SELECT a.* FROM table a, (select id from table where condition1 = 0 and condition2 = 0 and condition3 = -1 and condition4 = -1 order by id asc LIMIT 2000 OFFSET 50000) b where a.id = b.id
先获取主键列表,再通过主键查询目标数据,即使offset很大,也是获取了很多的主键,而不是所有的字段数据,相对而言效率会提升很多。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# mysql
# 分页
# offset
# sql
# 分页sql
# MySql分页时使用limit+order by会出现数据重复问题解决
# 为什么MySQL分页用limit会越来越慢
# mysql分页的limit参数简单示例
# 浅谈MySQL分页Limit的性能问题
# MySQL分页Limit的优化过程实战
# mysql分页性能探索
# 浅析Oracle和Mysql分页的区别
# SpringMVC+Mybatis实现的Mysql分页数据查询的示例
# 利用Spring MVC+Mybatis实现Mysql分页数据查询的过程详解
# MySQL分页分析原理及提高效率
# MySQL优化案例系列-mysql分页优化
# 你应该知道的PHP+MySQL分页那点事
# MYSQL分页limit速度太慢的优化方法
# MySQL分页优化
# MySQL分页技术、6种分页方法总结
# 8种MySQL分页方法总结
# mysql分页原理和高效率的mysql分页查询语句
# MySQL的几种分页方式
# 你知道几种方式
# 主键
# 后端
# 就会
# 不可能
# 太多
# 列表中
# 这条
# 越多
# 当我们
# 会给
# 这篇文章
# 谢谢大家
# 很慢
# 跳过
# 单条
# 而不是
# 有疑问
# brush
# SELECT
相关文章:
香港服务器租用费用高吗?如何避免常见误区?
网站制作报价单模板图片,小松挖机官方网站报价?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何使用Golang安装API文档生成工具_快速生成接口文档
如何零成本快速生成个人自助网站?
焦点电影公司作品,电影焦点结局是什么?
网站制作软件有哪些,制图软件有哪些?
建站之星3.0如何解决常见操作问题?
教学网站制作软件,学习*后期制作的网站有哪些?
高防服务器租用如何选择配置与防御等级?
如何生成腾讯云建站专用兑换码?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
广州营销型建站服务商推荐:技术优势与SEO优化解析
如何在万网ECS上快速搭建专属网站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
制作网站公司那家好,网络公司是做什么的?
如何在Windows 2008云服务器安全搭建网站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
建站之星备案是否影响网站上线时间?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星导航配置指南:自助建站与SEO优化全解析
建站之家VIP精选网站模板与SEO优化教程整合指南
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
如何零基础在云服务器搭建WordPress站点?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何配置WinSCP新建站点的密钥验证步骤?
建站之星安装后如何配置SEO及设计样式?
如何用免费手机建站系统零基础打造专业网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
英语简历制作免费网站推荐,如何将简历翻译成英文?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
专业公司网站制作公司,用什么语言做企业网站比较好?
如何在阿里云虚拟服务器快速搭建网站?
建站之星如何通过成品分离优化网站效率?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何实现建站之星域名转发设置?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
青岛网站建设如何选择本地服务器?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
智能起名网站制作软件有哪些,制作logo的软件?
建站主机服务器选型指南与性能优化方案解析
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
如何做静态网页,sublimetext3.0制作静态网页?
建站之星如何快速解决建站难题?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何用IIS7快速搭建并优化网站站点?
*请认真填写需求信息,我们会在24小时内与您取得联系。