я делаю:
explain select * from calibration;
говорится 52133456345632 строки
когда я делаю:
select count(*) from calibration;
я получаю 52134563456961
Может кто-нибудь объяснить, что здесь происходит?
Статистика таблицы (используемая EXPLAIN) основана на значениях в системном кэше, которые могут быть неточными.
http://dev.mysql.com/doc/refman/5.1/en/using-explain.html говорит:
Для таблиц InnoDB:это число является приблизительным и не всегда может быть точным.
Таким образом, версия запроса «count ()» будет точной, поскольку она действительно «посчитает» существующие строки.Версия объяснения не обязательно считает ваши строки, но может использовать оценку / кэш.Explain не предназначен для фактического использования в коде или производстве - это всего лишь инструмент, помогающий анализировать ваши запросы.