Mam tabelę MySQL o nazwie errormsg2
przy użyciu silnika pamięci MyISAM z kilkanaście kolumn.
Szacuję, że dwie z tych kolumn zajmują większość miejsca używanego dla każdego wiersza i są typu danych TEKST. Oni są backtrace
i msg
.
Próbuję oszacować ilość miejsca wymaganego dla każdego wiersza i natrafiłem na następującą sprzeczność:
show table status where name = 'errormsg2';
pokazuje, że (data_length + index_length) / rows
jest to około 778 bajtów na wiersz.
select avg( bit_length( em.backtrace ) + bit_length( em.msg ) ) / 8 from errormsg2 em;
pokazuje średnio 899 bajtów tekstu na wiersz tylko z tych dwóch kolumn.
Jak to możliwe, że tabela przechowuje więcej danych, niż wykorzystuje? czego mi brakuje?