MySQL 优化Limit分页
很多时候、我们需要选择出从指定位置开始的指定行数、此时、limit笑了
对于limit的定义是:
limit x,y
表示从第x行开始选择y条记录
在业务需要分页操作的时候、我们通常采用limit+order by这对洗剪吹组合、高端洋气上档次
然而、当翻到非常靠后的页面时、MySQL需要花费大量的时间来扫描需要丢弃的数据
此时比较好的策略是使用延迟关联:
通过使用覆盖索引查询返回需要的主键、再根据这些主键关联原表获得需要的行
具体请看下面的一个例子
假如有这样一个查询:
select film_id,actor,description from film where actor='WaterBin' order by title limit 100000,5
我们可以这样改造:
select film.film_id,film.actor,film.description
from film
inner join (
select film_id from film where f.actor='WaterBin'
order by title limit 100000,5
)
as f using(film_id);
By DBA_WaterBin
2013-08-02
Good Luck
MySQL 优化Limit分页的更多相关文章
- mysql优化limit分页
- 在MySQL中如何使用覆盖索引优化limit分页查询
背景 今年3月份时候,线上发生一次大事故.公司主要后端服务器发生宕机,所有接口超时.宕机半小时后,又自动恢复正常.但是过了2小时,又再次发生宕机. 通过接口日志,发现MySQL数据库无法响应服务器.在 ...
- MySQL的limit分页性能测试加优化
日常我们分页时会用到MySQL的limit字段去处理,那么使用limit时,有什么需要优化的地方吗?我们来做一个试验来看看limit的效率问题:环境:CentOS 6 & MySQL 5.71 ...
- mysql数据库limit分页,排序操作
看到网上很多朋友在问,limit分页之后按照字段属性排序的问题,在这里分享一下我的用法: 1.网上答案: 每页显示5个,显示第三页信息,按照年龄从小到大排序 select * from student ...
- Mysql优化大分页查询
如题,年前做了一个需求,涉及到Mysql大分页查询,整理一下,希望对需要的小伙伴有帮助. 背景分页查询的性能瓶颈B+树简述B+比起二叉查找树,有什么优势?分页查询过程测试集解决方法1 延迟关联法:2 ...
- mysql优化limit
limit 1.当只需要一条数据的时候,用limit1: 2.当需要提高分页效率的时候: 如果用上面的语句分页少量数据还是可以用的,但是随着数据量越来越大,直接用limit语句查询速度就会越来越慢,降 ...
- 我必须得告诉大家的MySQL优化原理
本文转载自http://www.jianshu.com/p/d7665192aaaf 说起MySQL的查询优化,相信大家积累一堆技巧:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段 ...
- MySQL优化原理
前言 说起MySQL的查询优化,相信大家收藏了一堆:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理 ...
- (转)学习MySQL优化原理,这一篇就够了!
原文:https://mp.weixin.qq.com/s__biz=MzI4NTA1MDEwNg==&mid=2650763421&idx=1&sn=2515421f09c1 ...
随机推荐
- Qt之json解析
Jsoner::Jsoner(QObject *parent) : QObject(parent){ QJsonObject json; json.insert("loginna ...
- DSP:CCS V6 TMS320F2812 使用printf函数
使用Code Composer Studio Version: 6.1.1.00022,建立TMS320F2812工程. /* * main.c */ #include <stdio.h> ...
- bootstrap框架应用
---------------------------------------------------------------bootstrap---------------------------- ...
- 一篇文章让你彻底搞清楚Python中self的含义
刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数? 你看完这篇文章后就会明白所有的疑问. self代表类的实例,而非类. ...
- C# 两个获得程序运行路径的函数
EXE文件的存储路径,不太受调用时环境变量的影响: Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Lo ...
- String的一些细节
String 常量池问题 (1) 字符串常量的"+"号连接,在编译期字符串常量的值就确定下来, 拿"a" + 1来说,编译器优化后在class中就已经是a1. ...
- BZOJ 1715: [Usaco2006 Dec]Wormholes 虫洞
Description John在他的农场中闲逛时发现了许多虫洞.虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前).John的每个农场有M条小路(无向边)连接着N ...
- IOS在后台每隔一段时间执行一下
步骤: 1.在info.plist里加入UIBackgroundModes键,其值为数组,数组之一为voip字符串: <key>UIBackgroundModes</key>& ...
- ArrayList与Vector、HashMap与HashTable
摘自api: 1.ArrayList与Vector: 原文:This class(ArrayList) is roughly equivalent to Vector, except that it ...
- UserMailbox 必须强制使用 Database---Database is mandatory on UserMailbox error
XX搞了接近一天,终于搞定. 不只是在查看用户邮箱里发现这样的情况,就连在PS里执行GET-MAILBOX之类,都有这个报错. 跟网上所有的解决方法都不一样. 重新了系统邮件都不行,重新了ADMINI ...