分页SQL

伟洪winni 2017-11-01 11:03:12


现在很多网站的分页都没有最前页, 最后页, 跳到XXXX页

查询页数靠后的数据, 花费的时间越长

请问分页这块SQL要怎么优化? 我都是 limit 0, 10; limit 10, 10; limit 20, 10;
...全文
287 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_20610429 2017-11-07
  • 打赏
  • 举报
回复
想要优化分页的终极方案就是:没有分页 具体优化可以看下这篇文章 : http://imysql.com/2014/07/26/mysql-optimization-case-paging-optimize.shtml
xuzuning 2017-11-01
  • 打赏
  • 举报
回复
有什么可优化的? 没有最后一页就数页数页的翻呗,反正耗费的不是你的时间
陶太郎 2017-11-01
  • 打赏
  • 举报
回复
写个程序 得到页数 然后sql语句中where id in ($start,$start+10) 这样就用到索引了应该
闲谈共视 2017-11-01
  • 打赏
  • 举报
回复
1、第一种方法:可以用数据预加载,全部数据都检索出来之后放到一个数据池里面,然后在进行分页查询(首次加载耗时较长,其他页面理论上就会很快了,查询显示时间速度一样); 2、第一页采用limit的方法显示,之后页面进行js加载技术实现,根据第一页的limit值,设置js加载的begin和end值,进行数据库查询的方法,理论上数据查询速度也一样的。
little_how 2017-11-01
  • 打赏
  • 举报
回复
1.数据库分页只能limit,越往后性能肯定越差; 2.很多网站不支持快速跳页会有几方面的原因,如前面的数据支持个性化(千人千面),后面的数据就变成常规化 3.如果分页不支持个性化的话,要解决性能有几个办法 1.预加载,当然筛选条件改变后,加载数据就失效;2缓存,减轻数据库的筛选和排序时间 4.如果数据量特别大的话,就建议分区或者分表,然后进行分页 总而言之就是要解决分页性能问题的办法有很多个,就要看你的场景适合哪一种了。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧