PHP et problème de lenteur de lecture via MongoDB 2.2
Bonjour à tous,
J'utilise MongoDB pour lire des documents, sachant que la base de données contient une collection de 350 000 documents .
Seulement voilà j'ai des problème aussi bien niveau de la lecture que de l'insertion des nouveaux documents sur la base de données de MongoDB .
Voici les codes que j'utilise pour la mise à jour de la base de données et la recherche des documents par mot clés
Mise à jour des documents :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
$cnx_mongo = new Mongo("127.0.0.1", array("persist" => "x"));
$db = $cnx_mongo->my_database;
$ma_collection = $db->my_collection;
$response = $ma_collection->drop();
$response = $db->drop();
$db = $cnx_mongo->my_database;
$ma_collection = $db->my_collection;
///Importation des données depuis une autre base de données (hors MongoDB)
///Pause d'un index sur la champs "tags"
$ma_collection->ensureIndex("tags"); |
Le champ "tags" contient un tableau de mots clés provenant du titre du document via la fonction "split" de php . A noter au passage que j'ai mis un index sur le champ "tags".
Le code utilisé pour recherche des document par mot clés :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
$cnx_mongo = new Mongo("127.0.0.1", array("persist" => "x"));
$db = $cnx_mongo->my_database;
$ma_collection = $db->my_collection;
//Get back keywords researching by tags fields
$who = array();
if(count($ArrayWord) > 1) {
$tmp = array();
foreach ($ArrayWord as $q) {
$tmp[] = new MongoRegex( "/". strtolower($q) ."/" );
}
$who['tags'] = array('$all' => $tmp);
}else{
$who['tags'] = new MongoRegex( "/". strtolower($mot) ."/" );
}
$cursor = $ma_collection->find($who)->limit(30)->skip(60);
$cursor->timeout(1000);
print($cursor->count()); // I display the number of documents
foreach($cursor as $obj){
///Affichage des resultats de la recherche des documents
} |
Comment puis je resoudre ce problème ?
Est un problème lié à la mémoire ? J'ai 6 Go au total de mémoire physique sur le serveur avec 4 Go de mémoire disponible .
Comment puis je diagnostiquer le problème de lenteur de ma base de données ? Y a t'il quelque pour configurer MongoDB ?
En vous remerciant d'avance .
Cordialement .