Base de données trop lourdes: Quelles tables peut-on vider ?

Base de données trop lourdes: Quelles tables peut-on vider ?

par Daniel Méthot,
Nombre de réponses : 5
Avatar Moodleurs particulièrement utiles

Bonjour,

Ma question est dans le titre...

  1. Quelles sont les tables qui peuvent être vidées sans risques avant de lancer une mise à jour de Moodle ?
  2. Pourquoi Moodle ne le fait-il pas automatiquement régulièrement ?

Merci les amis sourire

Daniel

 

Moyenne des évaluations  -
En réponse à Daniel Méthot

Re: Base de données trop lourdes: Quelles tables peut-on vider ?

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Daniel,

il faudrait déjà voir quelles tables, de ton coté, prennent le plus de place, sachant qu'elles reflèteront à coup sûr le fonctionnement de ton Moodle.

Je prends en exemple notre Moodle universitaire.
  • La table qui prend le plus de place, et de toute évidence, c'est la table des logs... sourire Elle peut être vidée, et on peut également désactiver les logs de la plateforme. Sur le principe, les logs ne sont pas obligatoires et allègent grandement les BDD si les journaux ne sont pas activés. Mais sans logs, cela peut amener des soucis techniques, notamment pour les plugins s'appuyant sur cette table (Training Sessions, XP...)
  • En 2e place, il y a l'historique des notes. Idem, cette fonctionnalité est désactivable. En tant que tel, il n'est pas nécessaire de conserver un historique si cela ne se justifie pas. Mais il s'agit d'une sécurité importante.
  • En 3 place, j'ai les 3 tables qui reprennent les tentatives de quiz (mdl_question_attempts, mdl_question_attempt_steps et mdl_question_attempt_step_data). Plus difficile de les vider si on ne veut pas casser toutes les tentatives en cours ou passées !
Cela reflète bien notre fonctionnement. Les logs sont importants, ils ont explosé avec le confinement car Moodle a été très utilisé, et notamment pour faire des QCM d'évaluation, ce qui a gonflé les tables de tentatives et l'historique des notes.

Pour reprendre ta question de départ : en premier, je m'attaquerai aux logs pour gagner en place. Pour le reste, il faudrait plutôt voir ce que tu comptes conserver, ce qui a une réelle importance dans ton fonctionnement (historique des notes, quiz, versions de wiki, messages...).

Pourquoi Moodle ne le fait pas automatiquement ? Selon moi simplement parce que toutes les situations sont différentes. Certains se fichent des logs, d'autres les utilisent pour l'admin, et d'autres basent des plugins dessus. Difficile d'imaginer un fonctionnement globale dans ce cas.

Olivier
Moyenne des évaluations Utile (2)
En réponse à Olivier Valentin

Re: Base de données trop lourdes: Quelles tables peut-on vider ?

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Merci Olivier,

Ce qui est de taille importante dans la base de données de ce site ce sont les tables suivantes :

  1. analytics_indicator_calc
  2. question_attempt_step_data (énorme !)
  3. question_attempt
  4. tool_customlang
  5. files
  6. grade_grades_history
  7. task_log
  8. course_modules_completion

 

En réponse à Daniel Méthot

Re: Base de données trop lourdes: Quelles tables peut-on vider ?

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Je reprends dans l'ordre les tables que tu as indiquées :

  1. analytics_indicator_calc : cette table est liée à la fonctionnalité d'analyses des indicateurs de l'investissement des étudiants. Il y a actuellement un ticket à son sujet concernant un nettoyage automatique : https://tracker.moodle.org/browse/MDL-68052
  2. question_attempt_step_data (énorme !) : lié aux quiz. Je ne m'amuserais pas à la vider celle-ci... à moins de faire une purge à un moment précis, en disant qu'on repart à zéro !
  3. question_attempt : idem au-dessus. C'est une table enregistrant les tentatives des étudiants. Le mieux serait plutôt de réinitialiser les quiz dans les cours. Mais j'imagine qu'il doit y en avoir beaucoup...
  4. tool_customlang : cela touche à tout ce qui est traduction et personnalisation des paquetages de langue. On peut gagner de la place en ne conservant que les modifications apportées au paquetage (c'est-à-dire conserver les lignes de la table où le champ local n'est pas nul).
  5. files : intouchable. C'est ce qui permet de rattacher un fichier à un contexte Moodle (devoir, fichier déposé etc.). A moins de supprimer les fichiers inutiles !
  6. grade_grades_history : table des historiques de notes. Un étudiant désinscrit d'un cours peut être réinscrit en faisant remonter les notes de cet utilisateur dans ce cours. S'il n'y a aucun intérêt à garder de telles archives, autant désactiver cette fonction de Moodle et vider la table !
  7. task_log : je n'ai pas cette table chez moi, je tourne sous Moodle 3.5.12+. A vue de nez, on dirait qu'il s'agit des logs des tâches automatisées (cron).
  8. course_modules_completion : table des achèvements d'activités. Indispensable et difficile à toucher, j'imagine...
Encore une fois, je pense qu'il est difficile d'imaginer des nettoyages automatiques partout, car en termes de relations de tables, Moodle n'est pas l'exemple le plus simple. Tout est interrelié, un plugin peut s'appuyer sur une table dont la fonction première se révèle inutile pour un admin donné... Bref, c'est compliqué !

Olivier
Moyenne des évaluations Utile (1)
En réponse à Olivier Valentin

Re: Base de données trop lourdes: Quelles tables peut-on vider ?

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Merci Olivier pour le temps consacré à me répondre !
Je me suis rendu compte que j'avais confondu le nombre de lignes et la taille de la table.
En fait les tables les plus importantes sont celles-ci:
tables ifsi
 
Mais ma Bdd est passée de 750MO à 520 MO ce qui ne me semble pas exagéré tout de même ? Même en mutualisé.
 
Merci encore.
 
Daniel
En réponse à Daniel Méthot

Re: Base de données trop lourdes: Quelles tables peut-on vider ?

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Ha oui, il y a une différence entre poids réel et nombre de lignes ! sourire

On voit en tout cas que les tables touchant au quiz prennent de la place, ainsi que celles des fichiers. A moins de pouvoir procéder à une purge de toutes les tentatives de quiz, il peut être difficile de gagner en place. La table mdl_files est intouchable comme expliqué tout à l'heure. Pour les historiques de notes, à toi de voir.

La table task_log m'est inconnue, si jamais quelqu'un a des infos là-dessus, il peut être intéressant de voir si on peut la vider. Si comme pour les logs classiques, cela peut être paramétré via l'interface, c'est un bon point.

Idem, je ne connais pas mdl_backup_logs. Mais au vu du nom, cela touche certainement aux sauvegardes. Si quelqu'un a une idée, la sauvegarde de notre plateforme ne se fait pas de cette manière.

Cela ne me semble pas forcément exagéré comme augmentation, il faut voir la répartition. Chez nous, les tables relatives aux quiz ont explosées. Normal : il s'agit d'un des principaux modes d'évaluation utilisés après le confinement. Si une ligne de table = une tentative de réponse d'une question d'un quiz par un utilisateur, cela donne une idée du nombre de ligne que ça représente !

La table de logs classiques de Moodle peut vite exploser si cela te rassure. La notre remonte sur deux ans et pèsent plus de 30 Go !!!!! Je n'ose même pas imaginer le poids de cette table pour des Moodle d'universités fusionnées... (coucou Lorraine et Strasbourg ! :D).

Olivier