Я посмотрел в my.ini и увидел различные настройки по умолчанию. Моя база данных работает на одном автономном компьютере. Я хочу оптимизировать производительность InnoDB и MySQL в целом для производительности. Нет ограничений на дисковое пространство. Какие настройки по умолчанию следует изменить, чтобы оптимизировать их для повышения производительности, надежности и возможных резервных копий на определенный момент времени [высокая доступность].
Edited
В настоящее время всякий раз, когда я запускаю «Оптимизировать таблицы» с помощью обслуживания на MySQL Administrator, он показывает:
Таблица не поддерживает оптимизацию, вместо этого выполняется воссоздание + анализ
на всех столах. Все мои таблицы InnoDB, но почему они не поддерживают Оптимизацию?
Ответы:
Способ настройки InnoDB сосредоточен вокруг
Вот формула, которую я использовал в течение последних 5 лет для вычисления пула буферов InnoDB на основе дискового пространства, используемого страницами данных и индексов InnoDB :
Конечно, я сказал, что функция доступной памяти и дискового пространства в настоящее время используется InnoDB. Отсюда, просто используйте здравый смысл. Рекомендуемое число из вышеприведенного запроса не должно превышать 75% установленной оперативной памяти !!! Это простое практическое правило для определения размера пула буферов InnoDB.
Вам также следует установить innodb_flush_method в O_DIRECT, поскольку он обеспечит стабильную синхронную запись InnoDB. Я также написал пост о том, как оптимизировать дисковое хранилище для InnoDB .
Что касается сообщения Таблица не поддерживает оптимизацию, вместо этого выполняется воссоздание + анализ , то причина, по которой вы получаете это сообщение об ошибке, заключается в том, что механизм хранения - InnoDB. Механически OPTIMIZE TABLE просто копирует таблицу во временную таблицу и выполняет ANALYZE TABLE .
В действительности, ANALYZE TABLE против InnoDB совершенно бесполезен. Даже если вы запустили ANALYZE TABLE для таблицы InnoDB, механизм хранения InnoDB снова и снова выполняет погружения в индекс для приближений мощности, таким образом уничтожая только что скомпилированную статистику. Фактически, Percona провела несколько тестов на ANALYZE TABLE и пришла к тому же выводу .
Вот другие сообщения, которые я сделал за год о настройке InnoDB
источник
Вот старая статья о важных переменных для грубой настройки. Наиболее важным, вероятно, является
innodb_buffer_pool_size
Я очень рекомендую обновить до MySQL 5.5 (если вы его еще не используете). Они внесли несколько изменений в производительность InnoDB. Они даже предоставляют основной раздел о том, как оптимизировать InnoDB теперь, когда это движок по умолчанию: http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb.html
Что касается резервного копирования на определенный момент времени, вы захотите посмотреть двоичный журнал . Основы включения этого - установить
log-bin
переменную в вашем my.cnfисточник
Оптимизация приходит во многих цветах.
Я думаю, что ваш первый шаг должен решить, что значит «оптимизировать» для вас. Для некоторых это означает «самые быстрые запросы SELECT». Для других это означает «лучший баланс между производительностью SELECT и производительностью INSERT». Для других - «самая высокая производительность INSERT».
Вы должны решить, каковы ваши критерии и как вы собираетесь определить, помогают ли ваши изменения, прежде чем приступить к настройке.
Затем поместите ваши файлы конфигурации и параметры запуска под контроль версий и начните экспериментировать. Документируйте, чьему совету вы следуете и где вы его нашли (Советы со временем меняются по мере изменения кодовой базы и оборудования.) Также поместите эти документы под контроль версий.
источник