Ответ 1
Сначала я бы сказал, что вы, вероятно, хотите отключить постоянные соединения, поскольку они почти всегда приносят больше вреда, чем пользы.
Во-вторых, я бы сказал, что вы хотите дважды проверить своих пользователей MySQL, просто чтобы убедиться, что никто не может подключаться с удаленного сервера. Это также важная вещь для проверки.
В-третьих, я бы сказал, что вы хотите включить MySQL Slow Query Log, чтобы следить за любыми запросами, которые занимают много времени, и используйте это, чтобы убедиться, что у вас нет запросов, блокирующих ключевые таблицы слишком долго.
Некоторые другие вещи, которые вы можете проверить, - это запустить следующий запрос, когда загрузка процессора высока:
SHOW PROCESSLIST;
Это покажет вам какие-либо запросы, которые в настоящее время запущены или запущены в очереди, что такое запрос и что он делает (эта команда будет обрезать запрос, если он слишком длинный, вы можете использовать ПОКАЗАТЬ ПОЛНЫЙ ПРОЦЕССЛИСТ, чтобы увидеть полный текст запроса).
Вы также захотите следить за такими вещами, как ваши размеры буфера, кеш таблиц, кеш запросов и innodb_buffer_pool_size (если вы используете таблицы innodb), поскольку все эти распределения памяти может повлиять на производительность запросов, что может заставить MySQL есть процессор.
Вы также, вероятно, захотите прочитать следующее, поскольку они содержат некоторую хорошую информацию.
Также очень полезно использовать профилировщик. Что-то, что вы можете включить, когда захотите, покажет вам, какие запросы выполняются вашим приложением, если дублируются запросы, сколько времени они берут и т.д. И т.д. Пример такого типа - это тот, который я работал над вызываемым PHP Profiler, но их много. Если вы используете часть программного обеспечения, такого как Drupal, Joomla или Wordpress, вы захотите спросить вокруг сообщества, поскольку там, возможно, доступны модули для них, которые позволяют вам получать эту информацию без необходимости вручную интегрировать что-либо.