Настройка переменной Mysql (Myisam)

У меня есть выделенный сервер с одним процессором, 4 ГБ оперативной памяти и база данных Mysql объемом 400 МБ (Myisam), у которой большие проблемы с производительностью. База данных используется электронной коммерцией. Я уже пытался настроить его с помощью скрипта mysqltuner, но безрезультатно. Поскольку настройки переменных менялись несколько раз, я хотел бы иметь базовую конфигурацию для начала, а затем попытаться ее настроить.


person Luca    schedule 30.07.2015    source источник
comment
Я предполагаю, что вы пробовали изучать индексы таблиц и выполнять операторы EXPLAIN для ключевых SQL-запросов, чтобы выяснить, какие запросы имеют самые большие узкие места. Инструменты, подобные тем, что рекомендует Нилеш, помогут вам в этой области. Вы также можете посмотреть, как ваши приложения выполняют ваши запросы, например, если они могут быть кэшированы на уровне приложения, кэшируйте их.   -  person forestclown    schedule 31.07.2015


Ответы (2)


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

https://tools.percona.com/wizard

person NIlesh Sharma    schedule 30.07.2015

Для электронной коммерции вам понадобится InnoDB. Если вы не изменитесь, вы сильно обожжетесь, когда крах произойдет в самый неподходящий момент денежной транзакции.

Внесите это изменение, затем

key_buffer_size = 20M
innodb_buffer_pool_size = 1000M

прочтите мой блог о переходе с MyISAM на InnoDB.

Когда вы обнаружите, что все работает недостаточно быстро, сделайте

  • long_query_time = 1
  • включить медленный журнал
  • подожди день
  • запустите pt-query-digest, чтобы найти пару худших запросов
  • представить их нам для критики. Решение может быть таким же простым, как добавление составного индекса. Или, может быть, переформулировать SELECT.

Я перенаправил вас на медленные запросы, потому что вы не можете «настроить» свой выход из плохой схемы, плохих запросов и т. д.

person Rick James    schedule 31.07.2015