2011-07-21 10 views
6

私は、MySQLサーバのバージョン5.5.14を使用して、今私が説明コマンドを使用して、この単純なSQLクエリしようとしています:mySQL command Explain ignore LIMIT?

EXPLAIN SELECT id, name, thumb FROM `twitter_profiles` LIMIT 10; 

をし、それが私にこの結果を示しています。それはスキャンし、なぜ私の質問がある

+----+-------------+-------+------+---------------+------+---------+------+-------+-------+ 
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
+----+-------------+-------+------+---------------+------+---------+------+-------+-------+ 
| 1 | SIMPLE  | tp | ALL | NULL   | NULL | NULL | NULL | 40823 |  | 
+----+-------------+-------+------+---------------+------+---------+------+-------+-------+ 
1 row in set (0.02 sec) 

を私はLIMIT句で指定した最初の10行を取る代わりに全体のテーブルですか?

事前にアドバイスをいただきありがとうございます。ここ

乾杯、

ヤクブ

答えて

10

行でも の数を推定しなが​​ら、あなたがどのように多くの制限LIMITを持っている場合についてMySQL EXPLAIN limits and errors

LIMITを考慮しない、物品の良いリンク行は検査されますMySQL はまだ完全な番号を印刷します

+0

@エヴィーアハですが、それはあくまで見積もりプロセスです。面白いことに、mysqlは10行だけを取るでしょう、それは本当ですか? –

+1

はいです。:) –

+1

@Jakub通常の場合であるORDER BY句を追加しない限り(そうでなければ、10行はランダムでも確定的でもありません)。最終的にクライアントに送信されない場合でも、一致するすべての行を検索する必要があります。 –

-3

ご注文の際にご利用ください。

EXPLAIN SELECT id, name, thumb FROM twitter_profiles ORDER BY LIMIT 10; 

ご希望の場合は、こちらをご覧ください。

+5

これは有効なSQLでさえありません。 –