Поскольку InnoDB является механизмом хранения транзакций, точный счет подлежит интерпретации. Например, некоторые строки могут существовать в хранилище, но транзакция, которая создала эти строки, еще не зафиксирована. Таким образом, строки не должны быть включены в счет.
Еще более запутанно, ваша транзакция может иметь REPEATABLE READ
уровень изоляции, что означает, что видны только те строки, которые были зафиксированы до вашей транзакции. Некоторые строки могут быть зафиксированы, но не так давно, как начало повторяемой транзакции чтения. Таким образом, эти строки также не должны быть включены в счет. Но те же строки включаются в подсчет, выполненный другой транзакцией, которая была запущена позже, или в READ COMMITTED
уровень изоляции.
Вот почему эта табличная статистика для InnoDB может быть только приблизительной. Точный счет требует сканирования всех сохраненных строк, чтобы увидеть, видны ли они для текущей транзакции.