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

优化MySQL 的 limit offset

WBOY
WBOY原创
2016-06-07 17:00:151170浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn