Создает ли XtraDB в MariaDB большие файлы, как это делает InnoDB в MySQL?

Я использую MySQL, но, как многие люди с трудом обнаружили, движок InnoDB создает большие и неусадочные файлы ibdata1. Активация innodb_file_per_table помогает, но не решает проблему.

Я думал о переходе на MariaDB и использовании движка XtraDB. Я знал, что это улучшенная версия InnoDB, но мне было интересно, по-прежнему ли она несет этот важный поток. Я не видел нигде упомянутого, так что я предполагаю, что это не проблема с MariaDB, но я хочу быть уверен.

Есть ли у кого-нибудь определенная информация об этом? Заранее спасибо.

1 ответ

Решение

Конечно, используя innodb_file_per_table является стандартной рекомендуемой конфигурацией, и, естественно, она может обеспечить максимальную выгоду, только если она включена до создания массивного файла табличного пространства системы, ibdata1,

Предполагая, что вы сделали все это правильно, если вы все еще видите, что оно значительно растет, вы делаете что-то, чтобы оно росло.

См. https://www.percona.com/blog/2013/08/20/why-is-the-ibdata1-file-continuously-growing-in-mysql/

Журнал повторного выполнения (!), Словарь данных и кухонная раковина все еще хранятся там, поэтому MySQL (InnoDB) просто не выделяет все больше и больше дискового пространства, а затем просто забывает об этом, а затем запрашивает больше, Ваша рабочая нагрузка во многом определяет этот рост.

XtraDB - это InnoDB с точки зрения структур данных на диске. Возьмите MySQL Server, остановите его, извлеките двоичные файлы MariaDB или Percona Server и запустите их... и XtraDB использует ваши ibdata1 и файлы журналов и файлы.ibd как начальник, как и они. Предположительно, все идет и другим путем, но никто никогда не пробовал. (Шутка. Но если серьезно, в моей сети из десятков серверов MySQL-esque я никогда не переносил машину на MariaDB или Percona Server, а потом подумал: "Ух, я действительно хотел бы вернуться к версии Oracle MySQL от Oracle". Часть о XtraDB, использующей существующие файлы ibdata1 и.ibd, не шутка, это все правда. Я даже взял необработанные двоичные файлы данных из MySQL на Solaris, скопировал их на компьютер с Linux и запустил с ними MariaDB -- нет проблем.)

Представьте его с той же рабочей нагрузкой, и вы должны ожидать аналогичного роста... хотя и не обязательно идентичного роста. Но XtraDB - это не InnoDB, поскольку он выполняет те же действия с теми же файлами, что и InnoDB. Это умнее и быстрее во многих отношениях, и в ограниченной степени может быть настроено так, чтобы сдерживать его рост, но он не будет работать с чрезвычайной магией над ограничениями дискового пространства, потому что для выполнения той же работы ему потребуется то же место. По сути, в смысле присутствия на диске это все еще InnoDB.

Другие вопросы по тегам