mysql分页优化

初学mysql,语法尚不熟悉,写分页查询时,按照SqlServer的语法写了ROW_NUMBER() OVER (),然后不出意外的报错了。经查,原来mysql不支持这种用法,于是本人开始了mysql分页查询语法大搜素,特此记录,备忘。
limit方法在数据量少的时候性能还不错,当数据量过大,性能耗损严重,也就必须进行优化。下边的优化办法,只适用于主键id自增的情况,就是根据id的大小来区分数据范围并实现顺序或降序的分页查询。

这是顺序排序分页查询方法:

-- 第一页
select * from t_content 
where id>=(select id from t_content order by add_time limit 1) 
order by add_time limit 10;
-- 第二页
select * from t_content 
where id>=(select id from t_content order by add_time limit 10,1) 
order by add_time limit 10;
-- 第三页
select * from t_content 
where id>=(select id from t_content order by add_time limit 20,1) 
order by add_time limit 10;

这是倒叙排序分页查询方法:

-- 第一页
select * from t_content 
where id<=(select id from t_content order by add_time desc limit 1) 
order by add_time desc limit 10;
-- 第二页
select * from t_content 
where id<=(select id from t_content order by add_time desc limit 10,1) 
order by add_time desc limit 10;
-- 第三页
select * from t_content 
where id<=(select id from t_content order by add_time desc limit 20,1) 
order by add_time desc limit 10;

注:查询子句里的字段必须是有索引的字段,这样才能根据索引快速查出目标数据再进行多条数据查询,如果不是索引,查询性能依然无法得到改善。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 特别说明: 1、本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识...
    安易学车阅读 2,192评论 0 40
  • MySQL不权威总结 欢迎阅读 本文并非事无巨细的mysql学习资料,而是选择其中重要、困难、易错的部分进行系统地...
    liufxlucky365阅读 2,863评论 0 26
  • 转载自:https://www.cnblogs.com/easypass/archive/2010/12/08/1...
    SkTj阅读 659评论 0 1
  • 我的喜欢可能如同黑昼太过浓烈,伸出去的手永远感受不到来自另一个手掌温热有力的紧握,只有无声的尴尬与落寞。然后摆摆肿...
    Insurgentk_z阅读 304评论 0 0
  • 做为A公司的老板小燕,每天早出晚归打理自己的公司,虽然疲惫不堪,但是创业的道路是自己选的,为了自己的梦想和公司那3...
    逍遥西柚阅读 630评论 0 4

友情链接更多精彩内容