MySQL マニュアル バージョン 5.0.20-MySQL の最適化 (4) (1)_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:03:18
オリジナル
900 人が閲覧しました

7.2.9 MySQL が ORDER BY を最適化する方法


場合によっては、MySQL は追加のソートを行わずに、インデックスを直接使用して ORDER BY または GROUP BY 句を満たすことができます。


ORDER BY がインデックスの順序と正確に一致しなくても、未使用のインデックス部分と追加のすべての ORDER BY フィールドが WHERE 句に含まれている限り、インデックスは引き続き使用できます。次のクエリは、インデックスを使用して ORDER BY または GROUP BY 部分を解決します:


SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;

SELECT * FROM t1 WHERE key_part1=constant ORDER BY key_part2;

SELECT * FROM t1 WHERE key_part1=定数 GROUP BY key_part2;

SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC;

SELECT * FROM t1

WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC;
インインそれ以外の場合、MySQL はインデックスを使用して WHERE 句に一致するレコードを検索しますが、ORDER BY を満たすためにインデックスを使用することはできません。これらの状況は次のとおりです:



異なるインデックス キーで ORDER BY を実行します:



SELECT * FROM t1 ORDER BY key1, key2;


不連続なインデックス キー部分で ORDER BY を実行します:



SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;


ASC と DESC の両方を使用する:



SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;


レコードの検索と ORDER BY に使用されるインデックス キー。同じ:



SELECT * FROM t1 WHERE key2=constant ORDER BY key1;


多くのテーブルが結合されており、読み取られたレコードの ORDER BY のフィールドのすべてが最初の非定数テーブルからのものであるわけではありません (つまり、EXPLAIN 分析の結果の最初のテーブルの結合タイプは const ではありません)。


http://www.bkjia.com/PHPjc/630969.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630969.html技術記事 7.2.9 MySQL が ORDER BY を最適化する方法 場合によっては、MySQL は追加のソートを行わずに、インデックスを直接使用して ORDER BY または GROUP BY 句を満たすことができます。 ORDER BY とは異なりますが...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート