我使用下面的代碼從PHP連接到我的mongoDB。這裏是我的本地主機的擴展信息,同樣在beta和prod上。 PHP中的MongoDB數據庫連接
我正在使用以下代碼連接到數據庫。
class WebAPI {
private $mongoClient;
function __construct() {
$mongoClient = new MongoDB\Client("mongodb://database.local:27017");
if(!$mongoClient){
//TODO: Inform status site about failure
http_response_code(500);
die();
}
$statsDB = $mongoClient->stats; //selects database stats
$pageViewsCollection = $statsDB->pageviews;
$result = $pageViewsCollection->insertOne(PageViewInsights::getInfo());
var_dump($result->getInsertedId());
}
}
在SQL數據庫中,我們使用連接池。我懷疑mongodb也有一個,我不確定。我搜索了它,但這個新的mongodb 1.1.x版本沒有出現。
更好的方法來做到這一點?
UPDATE
正如所說的路易斯·愛德華多·德克里斯托here,我延長了更多的相關信息的問題。
如果連接池不相關,如何處理大量的連接?每個連接需要多少內存,假如我設法爲每個HTTP請求只使用一個連接,並且使用這個連接管理所有事務,例如我有一個8GB內存的服務器,CentOS或Ubuntu上的Hexacore Xeon E5 @ 3.1 GHz,單獨運行mongod
而沒有像apache這樣的其他服務器,我可以創建多少個最大連接?我的服務器能夠處理多少個併發用戶?有什麼方法可以在MongoDB 3.2上優化它?
PS:沒有信息我能找到有關服務器配置的數據庫優化。
那麼我們如何管理巨大的連接量呢?有關於此的任何信息?或者這種方法是否有效? – Sibidharan
也許在這種情況下,你不應該擔心更多關於你的基礎設施,然後你的代碼(因爲連接是由PHP管理的)?我能想到的就像使用Mongodb副本和簇和碎片一樣。請看看:(https://docs.mongodb.com/manual/replication/)和 http://stackoverflow.com/questions/17839962/persistent-connection-or-connection-pooling-in -php54-nginx-phpfpm -mongodb https://www.quora.com/How-should-I-set-up-mongodb-cluster-to-handle-20K+-simultaneous-connections – deChristo
在這種情況下,罰款。我正在更新這個問題,以便進行連接管理和可以建立的最大連接。如果可以,請提供有關這方面的更多數據。 – Sibidharan