2015-06-01 1 views
0

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

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

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

+0

Здесь хранятся данные в ваших таблицах. Даже с file_per_table он хранит метаданные, буферы и журналы. Почему это проблема"? – Devon

+0

Я с @Devon по этому вопросу. Почему вы обеспокоены тем, что делает InnoDB? Почему вы даже используете файл в таблице? На самом деле это очень сложно, вы создадите так много открытых файловых дескрипторов и полностью уничтожаете интерфейсы вашей ОС, которые учитывают их и управляют ими. Если вас беспокоит использование пространства, которого вы абсолютно никогда не должны использовать, используйте Percona и TokuDB.Тем не менее, это известный факт, что вы хотите иметь достаточную ОЗУ, чтобы вставить свой набор данных в него для правильного и быстрого доступа. Почему вы беспокоитесь о сохранении дискового пространства? Таким образом вы убиваете оптимизацию двигателя. –

+0

Проблема с InnoDB вполне реальна, и полу-решение innodb_file_per_table используется часто, см., Например, http://stackoverflow.com/questions/3456159/how-to-shrink-purge-ibdata1-file-in- mysql Я видел, что файлы ibdata1 увеличиваются непропорционально быстро. Вот почему я спрашиваю о XtraDB – jdrew

ответ

0

Конечно, использование 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, остановите его, извлеките двоичные файлы MariaDB или Percona Server и запустите их ... и XtraDB использует ваши файлы ibdata1 и log и .ibd как босс, как и они. Предположительно, это идет и по-другому, но никто никогда не пробовал. (Шутка. Но серьезно, в моей сети из десятков серверов MySQL-esque, я никогда не переносил машину на MariaDB или Percona Server, а позже подумал: «Вау, я бы хотел, чтобы я вернулся к версии MySQL Oracle». Часть о XtraDB, использующая существующие файлы ibdata1 и .ibd, не шутка, это все правда. Я даже взял необработанные двоичные файлы данных из MySQL в Solaris и скопировал их на Linux-машину и начал с ними работу MariaDB - нет проблем.)

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