2017-05-19 7 views
1
explain select * from user where nick = 'vertichvostka' limit 1; 

テーブルには300万行があります。 制限1を設定すると、mysqlが21012行を読み込むのはなぜですか?なぜ私は限界を設定するよりも多くの行を読み込みますか?

enter image description here

+1

制限はちょうど行の戻り量を制限し、ないどのように多くの – ThisGuyHasTwoThumbs

+0

@Thisからの読み取りを中止しますGuyHasTwoThumbs私はOPがクエリ内に 'limit'句があるので最初のマッチの後で止めることができる場合、' where'節に一致するすべての行を見つける理由を質問しています。 – Paolo

+0

@Paoloああ、私が上に投稿した理由^^ haha – ThisGuyHasTwoThumbs

答えて

1

この古い記事に立ち:行の数を推定しなが​​らMySQL EXPLAIN limits and errors

LIMITは、あなたがMySQLの意志を検討する行数制限LIMITを持っている場合であっても考慮されていませんまだ完全な番号を印刷します。 MySQLは必要な数を送信したとすぐにhttps://dev.mysql.com/doc/refman/5.5/en/limit-optimization.html

から:あなたが実際にそれがlimit句で指定した行数の後に停止しますクエリを実行もちろん

クライアントへの行の、それはクエリ

関連する問題