Maison >base de données >tutoriel mysql >优化MySQL 的 limit offset

优化MySQL 的 limit offset

WBOY
WBOYoriginal
2016-06-07 17:00:151170parcourir

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn