Потому что один - это запрос, который подсчитывает все строки, а другой - команда, которая извлекает статистику, поддерживаемую механизмом БД о таблице. Нет никакой твердой гарантии, что таблица statisti c будет актуальной, поэтому единственный способ получить точный подсчет - это подсчитать строки, но возможно, вам не нужно, чтобы это было абсолютно точно все время. Таким образом, вы можете выбрать любой из них, в зависимости от вашего стремления к точности и скорости et c.
См. Здесь этот снимок экрана из https://pingcap.com/docs/stable/sql-statements/sql-statement-show-table-status/
Вы можете увидеть, что в примере вставляется 5 строк, но статистика таблицы устарела, и в таблице все еще отображается 0 строк. Выполнение ANALYZE TABLE (вероятно) займет больше времени, чем подсчет строк, но после этого статистика будет обновляться (по крайней мере, на некоторое время).