MySQL InnoDB - innodb_file_per_table недостатки?

Вы не говорите, как Вы связали их вместе. Вы использовали связи zip и сильно тянули их? Действительно ли Вы циклично выполняли кабель и обеспечивали цикл (как восьмерка)? Есть ли какие-либо другие места, где существуют резкие изгибы? Насколько маленький радиус циклов или изгибов?

Вы не говорите, являются ли они, выжил потолки отбрасывания или стены. Вы не говорите, чем условия состоят в том, что Вы работаете в. Случайные типсы и края листового металла, и т.д. Вы идете параллельно каким-либо люминесцентным лампам?

Помимо белок и крыс (который может быть очень настоящими проблемами), большую часть времени это грубо обрабатывает или неподходящее завершение та причина проблемы.

Вы говорите, что "Я перфорировал несколько разъемов на конце длины кабеля". Я предполагаю, что это - просто неточный способ сказать, что "Я перфорировал один разъем в каждом конце длины кабеля", потому что Вы не можете перфорировать несколько разъемов на кабеле для сетей и выйти сухим из воды как Вы, мог бы для нескольких телефонных разъемов на одном кабеле.

Кроме того, непрерывность и "полярность" по существу ничего не означают. Ваш тест с двумя компьютерами или компьютером и переключателем или лучшим выбором арендует надлежащий CAT 5, или больший тестер будет единственными способами приблизиться к тестированию. Много вещей проводит текущий, который не будет работать на сети.

Кроме того, не доверяйте соединительным кабелям. Попробуйте другой.

32
задан 24 April 2017 в 13:39
6 ответов

У меня есть полный ответ для этого.

После того как innodb_file_per_table помещается на месте, и новые таблицы InnoDB могут быть уменьшены с помощью ALTER TABLE <innodb-table-name> ENGINE=InnoDB'; Это уменьшится новый .ibd файлы ГАРАНТИРОВАНЫ.

Если Вы работаете ALTER TABLE <innodb-table-name> ENGINE=InnoDB'; на таблице InnoDB, составленной перед использованием innodb_file_per_table, он будет дергать данные и индексы для той таблицы из ibdata1 файла и хранить его в a .ibd файл, Это оставит постоянного голубя целым в ibdata1, который никогда не может снова использоваться.

ibdata1 файл обычно содержит четыре типа информации

Вот гарантируемый способ уменьшить ibdata1 файл в значительной степени навсегда...

ШАГ 01) MySQLDump все базы данных в файл кода на SQL (называют это SQLData.sql),

ШАГ 02) Отбрасывание все базы данных (кроме mysql, information_schema и performance_schema схемы)

ШАГ 03) Завершение работы mysql

ШАГ 04), Добавляют следующие строки к/etc/my.cnf

[mysqld]
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size=1G
innodb_buffer_pool_size=4G
innodb_data_file_path=ibdata1:10M:autoextend

Заметка на полях: Безотносительно Вашего набора для innodb_buffer_pool_size удостоверьтесь, что innodb_log_file_size составляет 25% innodb_buffer_pool_size.

  • ШАГ 05), Удаляют ibdata1, ib_logfile0 и ib_logfile1 (см. обновление ниже перед удалением!)

На данном этапе в/var/lib/mysql должна только быть mysql схема

  • ШАГ 06) Перезапуск mysql

Это воссоздаст ibdata1 на уровне 10 МБ (не настраивайте опцию), ib_logfile0 и ib_logfile1 в 1G каждый

  • ШАГ 07) Перезагрузка SQLData.sql в mysql

ibdata1 будет выращивать, но только содержать метаданные таблицы и неустойчивые данные MVCC.

Каждая таблица InnoDB будет существовать за пределами ibdata1

Предположим, что у Вас есть таблица InnoDB, названная mydb.mytable. Если Вы входите /var/lib/mysql/mydb, Вы будете видеть, что два файла представляют таблицу

  • mytable.frm (Заголовок механизма устройства хранения данных)
  • mytable.ibd (Дом индексов данных и таблицы таблицы для mydb.mytable)

ibdata1 никогда не будет больше содержать данные InnoDB и Индексы.

С innodb_file_per_table опцией в /etc/my.cnf, можно работать OPTIMIZE TABLE mydb.mytable ИЛИ ALTER TABLE mydb.mytable ENGINE=InnoDB; и файл /var/lib/mysql/mydb/mytable.ibd на самом деле уменьшится.

Я сделал это многочисленные времена в моей карьере как MySQL DBA без так как единственная проблема после этого. На самом деле, в первый раз, когда я сделал это, я свернул 50 ГБ ibdata1 файл в 50 МБ.

Попробуйте. Если у Вас есть дальнейшие вопросы на этом, пошлите мне по электронной почте. Поверьте мне. Это будет работать в ближайшей перспективе и по долгому пути.

ОБНОВИТЕ 02.07.2013 15:08 EDT

Существует протест, который я имею в этом отношении, что я обновил в других моих сообщениях, но я пропустил это: Я обновляю свой ответ немного больше с innodb_fast_shutdown, потому что я раньше перезапускал mysql и останавливал mysql, чтобы сделать это. Теперь, этот-шаг жизненно важен, потому что каждая незафиксированная транзакция может иметь другие подвижные части в и за пределами Журналов транзакций InnoDB (См. Инфраструктуру InnoDB).

Обратите внимание на то, что установка innodb_fast_shutdown к 2 вычистила бы журналы также, но больше подвижных частей все еще существует, и выбран Восстановление Катастрофического отказа во время запуска mysqld. Установка 0 является лучшей.

32
ответ дан 28 November 2019 в 19:56

Посмотрите ошибку.

Там оборотные стороны к использованию его?

  • более открытые файлы
  • откройтесь/вновь откройте наверху
  • Файл .ibd не уменьшается (см. 1, 2),

Я всегда использую innodb_file_per_table на больших базах данных.

12
ответ дан 28 November 2019 в 19:56

innodb_file_per_table включен по умолчанию в MariaDB.

8
ответ дан 28 November 2019 в 19:56

с innodb_file_per_table = 1, перетаскивание таблицы может выполняться медленнее см. Здесь

1
ответ дан 28 November 2019 в 19:56

Причина, по которой я решил не использовать innodb_file_per_table , заключается в том, что каждая таблица помещается в свой собственный файл, что означает, что каждая таблица получает свои собственные отдельные накладные расходы (файл- подписи и т. д.), в результате чего общий размер каталога MySQL будет больше, чем при использовании общего табличного пространства. Вдобавок из-за нехватки места в кластере возникает больше ненужного пространства при наличии нескольких небольших файлов вместо одного большого.

Конечно, дополнительные накладные расходы не являются огромной суммой в общей схеме. вещей, особенно если вы используете большой диск или гигантскую базу данных, но для меня (и, вероятно, многих «домашних пользователей») все это складывалось и все равно было слишком большим для маленького диска с большими кластерами, где я был сохранение моего хранилища MySQL.

Например,

2
ответ дан 28 November 2019 в 19:56

Просто чтобы добавить немного дополнительной информации

Так как mysql 5.6.6 по умолчанию включен

2
ответ дан 28 November 2019 в 19:56

Теги

Похожие вопросы