Как найти в базе данных mysql мои key_buffer и innodb_buffer_pool, конкурирующие
Серверная инфраструктура:
У меня есть сервер Centos под управлением Nginx + WordPress + MySQL.
Проблема:
MySQL часто получает shutodown и WordPress, показывая предупреждения "не удается подключиться к базе данных".
Проблема найдена:
Кажется, проблема была из-за размера innodb_buffer_pool.
Анализ:
После проверки журналов и чтения о пуле буферов, я понял, что если я использую смешанные механизмы хранения ( myISAM и innodb). Действительно, это правда, что я использовал оба двигателя.
Вопросы:
- Как найти, если MySQL буфер борется друг с другом во время работы?
- Если можно найти с помощью какой-то методологии, может ли она быть автоматизирована путем отправки электронной почты / смс?
1 ответ
Короткий ответ
- MyISAM кэширует только индексы из
.MYI
файлы. - InnoDB кэширует страницы данных и индексов (InnoDB Page is 16K)
Невозможно конкурировать между буфером ключей и буферным пулом InnoDB, если только нет проблем с выделением памяти вне mysqld (обычно из-за большого количества соединений с БД, когда каждое соединение с БД выделяет много памяти для своего собственного сеанса)
Более длинный ответ
Смотрите мои старые сообщения
Apr 14, 2011
: Каковы основные различия между InnoDB и MyISAM?Apr 24, 2012
: Сколько стоит открытие и закрытие соединения с БД?