Только что столкнулся с интересной особенностью таблиц типа InnoDB: вызов запроса
Например, в таблице размером 28.5Мб и количеством рядков в 390,000 показывало значения в диапазоне от 190,000 до 509,000.
Пошуршав в мануале нашел уточнение:
The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40 to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.
Особенность необычная и, как по мне, немного странная, но это не баг.
Может кто-нибудь объяснит почему так?
P.S. Прошу сильно не минусовать, это мой первый
upd: Опыта написания статей у меня ноль, поэтому принимается объективная критика, в т.ч. и к «рядкам».
SHOW TABLE SATUS;
показывает неточное количество рядков в таблице, причем чем больше рядков, тем больше погрешность. Подробности под катом.Например, в таблице размером 28.5Мб и количеством рядков в 390,000 показывало значения в диапазоне от 190,000 до 509,000.
Пошуршав в мануале нашел уточнение:
The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40 to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.
Особенность необычная и, как по мне, немного странная, но это не баг.
Может кто-нибудь объяснит почему так?
P.S. Прошу сильно не минусовать, это мой первый
блин.com
upd: Опыта написания статей у меня ноль, поэтому принимается объективная критика, в т.ч. и к «рядкам».