ホームページ > データベース > mysql チュートリアル > Mysql SQL性能优化之order_MySQL

Mysql SQL性能优化之order_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-01 13:36:16
オリジナル
995 人が閲覧しました

bitsCN.com

Mysql SQL性能优化之order

 

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

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

高效的查询

低性能:

 

select id,job_name from test_results where id

1 rows fetched (390 ms)

 

高性能:

 

select id,job_name from test_results where id =(select id from test_results where id

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

ON

JOIN

WHERE

GROUP BY

HAVING

SELECT

DISTINCT

ORDER BY

 

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

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

 

bitsCN.com
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート