Я запускал скрипт, который опрашивал SHOW STATUS для подсчета потоков, и заметил, что использование mysql_pconnect всегда поощряет большое количество потоков. Я нашел это очень смущающим, потому что тогда я не мог сказать, когда моя скорость соединения фактически снижалась. Поэтому я позаботился о том, чтобы централизовать все места, где вызывался mysql_connect (), и устранить mysql_pconnect ().
Следующее, что я сделал, посмотрел на тайм-ауты подключения и изменил их на 30 секунд, потому что. Поэтому я настроил my.cnf с помощью
подключения таймаут = 30
чтобы я мог видеть, как падает количество соединений. Чтобы определить количество соединений, которые вам нужно открыть, зависит от того, сколько рабочих Apache у вас работает, и количества соединений с базой данных, которые они будут открывать.
Другой вещью, которую я начал делать, было добавление заметки к моим запросам, чтобы найти их в SHOW PROCESSLIST или mytop, я бы добавил столбец заметки к своим результатам, например:
$q = "SELECT '".__FILE__.'.'.__LINE__."' as _info, * FROM table ...";
Это покажет мне файл, выдающий запрос, когда я посмотрел на mytop, и он не испортил кеш запросов MySQL, как при использовании
/* __FILE__.'.'.__LINE__ */
в начале моего запроса будет.