Я взял существующую базу данных MySQL и настроил копию на новом хосте.
Размер файла для некоторых таблиц на новом хосте на 1-3% меньше, чем у их файлов на старом хосте.
Мне любопытно, почему это так.
Я предполагаю, что файлы старого хоста со временем росли, и в структуре b-дерева для этого файла наблюдается большая фрагментация. Принимая во внимание, что новый хост, поскольку он создавал файл с нуля (через двоичный журнал), избежал такой фрагментации.
Есть ли смысл в том, чтобы внутри самой структуры b-дерева была фрагментация? (Говоря на уровне базы данных, а не в отношении уровня файловой системы ОС) Сначала я думал, что нет, но опять же, не является ли такая фрагментация основой для задачи DBA по сжатию файлов вашей базы данных?
Мне интересно, может быть, это просто артефакт уровня файловой системы. то есть новый хост имеет в основном пустой диск, следовательно, меньшая фрагментация приведет к выделению нового файла. С другой стороны, я не думал, что фрагментация будет отображаться в указанном размере файла (ОС Linux).