2017-03-13 5 views
1

私は以下の次のクエリがあります。manualによると、学生EXPLAINを指定しないEXPLAINとEXPLAINを指定したクエリが異なる行数を表示するのはなぜですか?

enter image description here

+0

キャッシングに関する問題は解決しましたか? Workbenchを終了してもう一度元に戻りましたか? –

+0

ほとんどのDBエンジンは実際にそこにある行の数を記録しますが、InnoDBはそうしないので、実際にこの数を実行する必要があります。どの列が数えられるか指定しようとしましたか。見積もりは、索引付けされた列を使用するかどうかに基づいて変更されますか。 MyISAMエンジンにテーブルのコピーを作成した場合、そこに違いはありますか? – DanielM

答えて

0

FROM SELECT COUNT()をEXPLAIN学生 2- の1- SELECT COUNT(を):

rowsカラムは、MySQLがクエリを実行するために調べなければならない行の数を示します。

InnoDBテーブルの場合、この数値は概算値であり、必ずしも正確ではない場合があります。

"推測する"方法を決定する方法はわかりません。

更新:

オプティマイザは異なる可能なクエリ・プランについての情報を収集し、最もコストの低いものを選択します:

Database Administrators Stack Exchangeにこの答えは、それがインデックス統計に基づいている示唆しています。 EXPLAINに示されている情報は、オプティマイザーが選択した計画について収集した情報です。

これはまだありませんかなりバックグラウンドで起こったことを説明します。

関連する問題