2016-05-16 10 views
0

私はDESCORDER BYなしでクエリを遅くする?

SELECT SQL_NO_CACHE second_designer 
    FROM itemrow FORCE INDEX(second_designer) 
    WHERE category like '%' 
     and type like '%' 
     and availability like '%' 
    GROUP BY second_designer 
    ORDER BY second_designer DESC 

259 results in 0.0008 seconds. 


BY ORDER WITH

SELECT SQL_NO_CACHE second_designer 
    FROM itemrow FORCE INDEX(second_designer) 
    WHERE category like '%' 
     and type like '%' 
     and availability like '%' 
    GROUP BY second_designer 

259 results in 0.0286 seconds. 


QUERY BY ORDERなし私のInnoDBデータベース


QUERY上で次のコマンドを実行しています

INDEX

ADD INDEX `second_designer` (`second_designer ` , `availability`, 
          `category`, `type`) USING BTREE 

id select_type table type possible_keys key   key_len ref rows Extra 
1 SIMPLE  itemrow index second_designer second_designer 608 NULL 44521 Using where; Using index 


をEXPLAINなぜそんなに速くないものよりもORDER BY句を含むクエリ?

+0

この質問は全く意味がありません。どちらのクエリのWHERE句にも使用することはできません。あなたは1つのクエリに対してのみ説明を与えました。 – e4c5

+0

説明は両方のクエリで同じです。また、索引 'second_designer'が使用されているという説明もありません。 – Pieter

+0

これはグループのためのもので、インデントされた説明出力を投稿した方が明確になります。 – e4c5

答えて

0

違いは、 'hidden'によって引き起こされましたLIMIT phpMyAdminがすべてのクエリに追加されました。明示的クエリの両方が同じ(0.0286秒で259の結果)を実行するLIMITを設定した後

$cfg['MaxRows'] Listed in phpMyAdmin Docs

0

インデックスを使用して結果を並べ替える場合は、インデックスを使用します。インデックス順の照会では使用されません。これは、次のような違いがあります。

関連する問題