Есть некоторые параметры конфигурации, которые вы должны продумать, прежде чем начать.
Пока вы вообще не используете 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 по умолчанию использует один файл для всех баз данных / таблиц. В отличие от таблиц MyISAM, которые используют каталог на базу данных и файлы на таблицу / tableindex.
Это может иметь значение, если вы используете для сокращения физических файлов на основе таблицы (оптимизировать таблицу ххх)
источник