Создает ли 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.