Таблица статистики (используется EXPLAIN) основана на системных кешетах, которые могут быть неточными.
http://dev.mysql.com/doc/refman/5.1/en/using-explain.html говорит:
Для таблиц InnoDB, это число является приблизительным и может не всегда быть точным.
Таким образом, версия запроса «count()» будет точной, поскольку она действительно «подсчет» существующих строк. Версия 'explain' не обязательно учитывает ваши строки, но может использовать оценку/кеш. Объяснение не предназначено для фактического использования в коде или производстве - это просто инструмент для анализа ваших запросов.
Разве вы не вставляли новые строки между выполнением этих двух команд? –
Просто уточнить: версия счетчика будет точной, так как она действительно будет считать ваши существующие строки. Версия объяснения не учитывает ваши строки, но может использовать оценку/кеш. Объяснение не предназначено для фактического использования в коде или производстве - это просто инструмент для анализа ваших запросов. –
henrik, пожалуйста, положите это в ответ, чтобы я мог отметить его правильно. –