Я путаюсь с количеством строк в MySQL. Общее количество строк, возвращаемых phpMyAdmin и запросом количества, отличается.
Моя структура таблицы - InnoDB
.
Showing rows 0 - 24 (655537 total, Query took 0.1527 seconds.)
Это результат просмотра таблицы.
Мой запрос был
SELECT count(*) FROM 'table_name'
Это будет возвращено как 602030
Когда вы просматриваете с помощью инструмента, такого как phpmyadmin или heidiSQL, выполняется такой запрос:
SHOW TABLE STATUS LIKE 'table';
это значение является неточным, и если вы запускаете его много раз, оно всегда дает разные результаты.
наоборот запрос:
select count(*) from table
фактически считает записи и дает правильный результат.
Как упомянуто в документации mysql https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html:
Некоторые механизмы хранения, такие как MyISAM, хранят точное количество. Для других механизмов хранения, таких как InnoDB, это значение является приблизительным и может отличаться от фактического значения на целых 40–50%. В таких случаях используйте SELECT COUNT (*), чтобы получить точный счет.
Mysql сказал: по INNODb сумма всего лишь приблизительное число.
https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html