Что я должен знать, прежде чем начать работу с базой данных InnoDB?

10

Какие вещи должен знать и делать администратор сервера или базы данных, прежде чем делать базу данных InnoDB доступной.

Я думаю о таких вещах, как установка правильных значений innodb_buffer_pool_sizeиinnodb_log_file_size

Итак, какие простые вещи вы можете забыть настроить, чтобы приложение, использующее базу данных, работало менее оптимально?

Jacco
источник

Ответы:

14

Есть некоторые параметры конфигурации, которые вы должны продумать, прежде чем начать.

Пока вы вообще не используете myisam, вы можете безопасно распределить почти всю (достаточно, чтобы ваша ОС работала комфортно, и достаточно для вашей max_connections) вашу память innodb_buffer_pool. Приятной особенностью InnoDB является то, что она обрабатывает почти все элементы памяти сама по себе, не нужно разделять такие элементы, как кеши запросов, ключевые буферы и т. Д.

Я бы порекомендовал вам включить его innodb_file_per_table, просто потому, что это намного упрощает просто просмотр файловой системы и просмотр необходимого пространства для разных таблиц и баз данных. Вам все еще понадобится универсальный файл ibdata для внутреннего использования InnoDB, но вы можете просто определить его как 10M:autoextend. Нет необходимости определять множество различных файлов данных innodb с предварительно назначенными размерами.

innodb_log_file_sizeи innodb_log_buffer_sizeобъединенный должен быть больше чем в десять раз ваш самый большой объект BLOB, если у вас есть много больших. Если вы этого не сделаете (и вам не следует [ 1 , 2 ]), вам не нужно сильно беспокоиться об этом. Проверьте MySQL Performance Blog для подробного отчета о том, как рассчитать.

А когда вы некоторое время запускаете MySQL, проверьте свои настройки с помощью MySQLTuner или MySQL Tuning Primer .

Для более подробного отчета попробуйте mysqlreport , а для мониторинга в реальном времени проверьте mytop .

Нильс-Андерс Нётцетер
источник
Что нужно помнить о innodb_file_per_table, так это то, что методы, используемые для восстановления дискового пространства, различны. С помощью файлов ibdata вы можете восстановить пространство в табличном пространстве, удалив конец таблицы. Поскольку пространство отдельных файлов таблиц не восстанавливается удалением, необходимо перестроить таблицу с таблицей оптимизации, чтобы вернуть пространство файловой системе. Оптимизация блокирует таблицу и может привести к простоям в вашем приложении.
Минтинберг
2

Один небольшой «сюрприз» для меня заключался в том, что innodb по умолчанию использует один файл для всех баз данных / таблиц. В отличие от таблиц MyISAM, которые используют каталог на базу данных и файлы на таблицу / tableindex.

Это может иметь значение, если вы используете для сокращения физических файлов на основе таблицы (оптимизировать таблицу ххх)


источник