InnoDBが実際に読んだレコード数を取得する
MySQLサーバが返すレコード数でなく、InnoDBが実際に読んだレコード数知りたいなーと思ってたら、普通にステータス変数の Innodb_rows_read
で取れました。
SHOW SESSION STATUS LIKE 'Innodb_rows_read';
Innodb_rows_read
は今までの累積値なので、クエリ実行前と後の差分を見るといいでしょう。
(FLUSH STATUS;
を実行してもInnodb_%
関係のステータス変数はリセットされないみたいです。サーバ再起動しかリセット方法はないのでしょうか?)
EXPLAIN結果のrows列が想定値よりずれてる時に見てみるといいと思います。