Открытие одного соединения MySQL против открытия и закрытия большого количества соединений? - PullRequest
0 голосов
/ 22 сентября 2010

У меня есть цикл> x20000 в php, который проверяет, существует ли запись в базе данных MySQL, я открываю и закрываю соединение для каждой записи в цикле, но друг сказал мне, что это безумие, и я должен открыть одно соединение, запустить затем закройте его, но он не сказал мне, почему. Может ли кто-нибудь объяснить мне преимущества повторного использования той же связи? это загрузка процессора или что?

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Мало того, что это дорого, но если к сценарию, выполняющему его одновременно, поступает несколько запросов, вы можете столкнуться с лимитом соединения на сервере, так что дальнейшие запросы должны ждать или отклоняться.

Но главное, как сказал @zerkms, это дорогая операция. Около шести месяцев назад я взял сценарий, который повторял соединения в цикле, и переместил соединение за пределы цикла, и время выполнения сценария упало с 10-12 секунд до 1 секунды.

2 голосов
/ 22 сентября 2010

Это сетевое соединение + накладные расходы на соединение mysql. Требуется время, чтобы подключиться и понять, что это «дорогая» операция.

...