У меня есть таблица MySQL с именем errormsg2
использующая механизм хранения MyISAM с примерно дюжиной столбцов.
Два из этих столбцов, по моим оценкам, составляют большую часть пространства, используемого для каждой строки, и они имеют тип данных TEXT. Это backtrace
и msg
.
Я пытаюсь оценить объем памяти, необходимый для каждой строки, и натолкнулся на следующее противоречие:
show table status where name = 'errormsg2';
показывает, что (data_length + index_length) / rows
составляет около 778 байт на строку.
select avg( bit_length( em.backtrace ) + bit_length( em.msg ) ) / 8 from errormsg2 em;
показывает в среднем 899 байт текста на строку только из этих двух столбцов.
Как это возможно, что таблица хранит больше данных, чем она использует? Что мне не хватает?