Что происходит, когда соединения с MongoDB не закрыты?
У меня есть следующий PHP-скрипт, который в основном подключается к MongoDB, пишет документ, а затем закрывает соединение 19000 раз:
<code><?php for($i=0; $i < 19000; $i++) { $con = new Mongo("mongodb://localhost:27017"); $db = $con->selectDB('test'); $col = $db->selectCollection('close_wait_test'); $col->insert(array('Test' => 'Value1')); $con->close(); } ?> </code>
Запуск этого скрипта один раз работает нормально, но если я запускаю скрипт через несколько секунд, я получаю «Невозможно назначить запрошенный адрес». исключение, которое понятно, так как серверная система, вероятно, исчерпала порты.
Однако, если я удаляю $ con & gt; close (); Я могу запускать этот скрипт снова и снова без какого-либо заметного напряжения в базе данных. Я предполагаю, что это связано с тем, что соединение с базой данных является постоянным и повторно использует то же самое начальное соединение в сценарии.
Я хотел бы знать, что если бы 20 000+ разных пользователей одновременно выполняли 1 цикл этого сценария, что бы произошло с базой данных? например будут ли просто исчерпаны доступные соединения, потому что каждому пользователю нужно создать одно соединение с базой данных? или все эти пользователи будут использовать одно и то же начальное соединение, созданное первым пользователем?