您好,欢迎访问一九零五行业门户网

优化MySQL 的 limit offset

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秒的时间。
其它类似信息

推荐信息