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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 .