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