首页 > 数据库 > mysql教程 > 优化MySQL 的 limit offset

优化MySQL 的 limit offset

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 17:00:15
原创
1190 人浏览过

limit 和offset 通常会和order by 一起使用。索引对排序比较有帮助,如果没有索引就需要大量文件排序,因此在order by 列一定要

limit 和offset  通常会和order by 一起使用。索引对排序比较有帮助,

如果没有索引就需要大量文件排序,因此在order by 列一定要添加索引。

如果有:

select * from mytable order by sp_id limit 100000,10

类似的sql语句出现,那么这个操作的代价非常高,会扫描 100010 行数据。

这个时候可以改成

select * from mytable

inner join (

select pid from mytable  order by sp_id limit 100000,10

)  as lim using (pid);

注:  sp_id  建立了 BTREE 索引

则能够让服务器在索引上面检查尽可能少的数据,一旦取得了需要的行,就将他们连接在完整的表上面,,并取得其余的列。

修改前的SQL 语句执行时间为 2.10 秒,修改后的SQL语句执行时间为  1.75秒。节省了  0.35秒的时间。

linux

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板