Количество строк в MySQL различается, общее количество и количество запросов [дубликаты]

0

Я путаюсь с количеством строк в MySQL. Общее количество строк, возвращаемых phpMyAdmin и запросом количества, отличается.

Моя структура таблицы - InnoDB.

Showing rows 0 - 24 (655537 total, Query took 0.1527 seconds.)

Это результат просмотра таблицы.

Мой запрос был

SELECT count(*) FROM 'table_name'

Это будет возвращено как 602030

Изображение 174551

  • 0
    Вы реализуете это в PhpMyAdmin?
  • 0
    @TeeKea да, ты прав.
Показать ещё 1 комментарий
Теги:
phpmyadmin

2 ответа

2
Лучший ответ

Когда вы просматриваете с помощью инструмента, такого как 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 (*), чтобы получить точный счет.

0

Mysql сказал: по INNODb сумма всего лишь приблизительное число.

https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню