PHP :: PDO многократное открытие / закрытие соединений - PullRequest
2 голосов
/ 30 августа 2011

Допустим, у меня есть функция, которая делает вызовы PHP :: PDO, функция открывает соединение, запускает MySQL, закрывает соединение, возвращает некоторые данные.

Я не видел ни одногосерьезные проблемы с этим, но есть ли причина, почему это плохая практика?Каковы риски, связанные с этим?

Ответы [ 3 ]

2 голосов
/ 30 августа 2011

Никаких рисков, о которых я знаю, но есть сетевая задержка для установления соединений.Вероятно, теперь он будет работать нормально, когда вы просто подключаетесь к localhost, но у вашего приложения, вероятно, возникнут проблемы с масштабированием, если вы устанавливаете несколько соединений для каждого HTTP-запроса и когда-либо захотите перейти на дополнительный сервер базы данных по любой причине.

Страница PHP по своей природе является однопоточной, поэтому, если вы сами не запускаете несколько потоков, проблем с параллелизмом не возникает.По-прежнему рекомендуется использовать транзакции InnoDB и SQL, чтобы предотвратить проблемы параллелизма между несколькими запросами.

1 голос
/ 30 августа 2011

Существенное количество накладных расходов связано с многократным открытием и закрытием соединения.Это не так уж важно, пока не станет проблемой производительности.Если это становится проблемой, вы можете изменить его, чтобы соединение оставалось открытым в течение всего сценария, и повторно использовать одно и то же соединение для нескольких транзакций базы данных.Это довольно распространенная практика.

Если у вас нет фиксированного (и небольшого) количества транзакций базы данных на скрипт, я бы рекомендовал не подключать и разрывать соединение при каждом действии.Вместо этого откройте его один раз и удерживайте соединение, пока сценарий не прекратится.

0 голосов
/ 30 августа 2011

Пока у вас больше нет запросов на выполнение, я не вижу в этом проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...