视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MysqlSQL性能优化之order_MySQL
2020-11-09 18:30:39 责编:小采
文档


bitsCN.com

Mysql SQL性能优化之order

mysql的order在排序时,会被select出来的数据多少所影响,

数据列越多,排序越慢,为了说明这个问题,请看几个例子。

高效的查询

低性能:

select id,job_name from test_results where id <96836230 order by id desc limit 0,1;

1 rows fetched (390 ms)

高性能:

select id,job_name from test_results where id =(select id from test_results where id<110836230 order by id desc limit 0,1 ) limit 1;

1 rows fetched (281 ms)

高效的分页查询 www.bitsCN.com

低性能:

select id,job_name from test_results order by id desc limit 1200000,100;

100 rows fetched (34.616 sec)

高性能:

select id,job_name from test_results join (select id from test_results order by id desc limit 1300000,100) as t2 using(id);

100 rows fetched (5.460 sec)

接下来我们分析其原因,首先从mysql的执行顺序开始讲起,

执行顺序从上到下:

FROM < left_table >

ON < join_condition >

< join_type> JOIN < right_table>

WHERE < where_condition>

GROUP BY < group_by_list >

HAVING < having_condition>

SELECT

DISTINCT

ORDER BY < order_by_list>

所以得出结论,select出来的数据越多,排序越慢。

减少了order by中的排序数据,再去join或者=查询即可加快执行效率。

bitsCN.com

下载本文
显示全文
专题