Ich habe folgende PHP-Skript, das mit dem MongoDB verbindet im Grunde, ein Dokument schreibt und dann schließt die Verbindung 19000 mal:Was passiert, wenn Verbindungen zu MongoDB nicht geschlossen sind?
<?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();
}
?>
dieses Skript einmal Laufen funktioniert gut, aber wenn ich das Skript ein paar Sekunden später Ich erhalte die Ausnahme 'angeforderte Adresse nicht zuordnen', was verständlich ist, da das Serversystem wahrscheinlich keine Ports mehr hatte.
Wenn ich jedoch $ conf> close() entferne; Ich kann dieses Skript immer wieder ausführen, ohne die Datenbank merklich zu belasten. Ich gehe davon aus, dass dies der Fall ist, weil die Verbindung zur Datenbank dauerhaft ist und die gleiche anfängliche Verbindung für das Skript wieder verwendet.
Was ich gerne wissen würde ist, wenn 20k + verschiedene Benutzer 1 Schleife dieses Skripts zur gleichen Zeit laufen, was würde mit der Datenbank passieren? z.B. Würden die verfügbaren Verbindungen einfach ausgehen, weil jeder Benutzer eine Verbindung zur Datenbank erstellen muss? Oder würden alle diese Benutzer die gleiche erste Verbindung verwenden, die vom ersten Benutzer erstellt wurde?
Danke für die Erklärung! –