Index

Corrigé de TD pour un cours dispensé à  l’université de Rennes 2

Romain Tavenard

Pour ce TD, vous allez travailler sur une base nommée large_db et sa collection users.

  1. Combien de documents contient cette collection ? Quels sont les attributs des documents de la collection ?

1 Sans index

MongoDB permet d’obtenir un certain nombre d’informations sur le déroulement d’une requête à l’aide de la fonction explain() :

> db.nomDeLaCollection.find({...}).explain("executionStats")
  1. Utilisez cette méthode pour obtenir (i) le temps d’exécution, (ii) le nombre de documents parcourus et (iii) le nombre de documents retournés par une simple requête demandant d’afficher les informations des utilisateurs dont la clé "name" vaut "user101".

  2. Même chose en ne demandant de retourner qu’un utilisateur. Que remarquez-vous ?

  3. Répétez encore cette opération en cherchant maintenant l’utilisateur "user499999". Que remarquez-vous ?

2 Avec un index

  1. Passez maintenant à la base large_db_with_index ayant le même contenu que la base précédente, mais disposant d’index. Affichez les index existant sur la collection users de cette base : sur quel(s) attribut(s) portent-ils ?

  2. Répétez les opérations précédentes (questions 2 à 4). Que remarquez-vous ? Quel(s) index ont été utilisés par ces requêtes ?

3 Index composés

  1. Effectuez les requêtes suivantes et examinez leur exécution (nombre de documents parcourus, index utilisés) :

4 Exercice de synthèse

Liens utiles :

  1. Passez à la base food. Quels sont les index définis sur la collection NYfood et de quel type sont-ils ? Quelles commandes a-t-il fallu exécuter pour les créer ?

  2. Vérifiez que ces index sont effectivement utilisés à l’aide de quelques requêtes simples (éventuellement issues des TD précédents).