MySQL 5.5 на сервере Windows работает ужасно медленно
Мне не повезло, что MySQL 5.5 работал так же быстро, как 5.1 или MariaDB на том же оборудовании / базе данных / среде под Windows server 2003R2 или 2008R2.
Мои тесты из нашего приложения:
MySQL 5.5 + CentOS 5.2 (XenServer Virtual) = 28 seconds (box is "busy" not buried)
MariaDB (5.1) + Windows 2003 (Physical box) = 130 seconds (box is 2% busy)
MySQL 5.1 + Windows 2003 (Physical box) = 170 seconds (box is 2% busy)
MySQL 5.5 + Windows 2003 (Physical box) = 305 seconds (As high as 600 seconds...) (box is 2% busy)
Единственная разница между этими запусками заключается в удалении скип-блокировки и запуске mysql_upgrade.exe для обновления некоторых таблиц для хранимых процедур на 5.5.
Да, я знаю, что это релиз-кандидат, и я передаю его обратно в MySQL.
Медленные запросы не регистрируются, он не думает, что он медленный, он просто есть.
Я собираюсь начать разбираться с самими запросами, чтобы посмотреть, не сработали ли планы INSERT/SELECT на 5.5.
2 ответа
Взгляните на http://bugs.mysql.com/59133. В большинстве случаев он может быть записан на диск (это означает, что окно занято на 2%, это серьезный совет). Возможно, после тщательного изучения вы захотите установить комбинацию
innodb_support_xa = 0
innodb_flush_log_at_trx_commit = 0 # или 2?
sync_binlog = 0
и посмотрим, что получится.
После того, как вы загрузите CPU, тогда имеет смысл использовать Win2008R2, некоторые улучшения, в частности, касаются Vista+
У меня была проблема на моем компьютере, запросы были более чем в 10 раз медленнее, чем на компьютере коллеги. Я использовал его my.ini
файл, перезапустил сервер, и это решило проблему.
После нескольких тестов выясняется, что особая настройка, которая имеет огромное значение innodb_flush_method=normal
(строка была добавлена, поэтому кажется, что мой сервер использовал какое-то значение по умолчанию).
Также линия sql-mode
получил комментарий, но не знаю, изменит ли это что-нибудь.