J'ai hérité d'un site client qui possède une base de données extrêmement volumineuse sans aucune raison. Il y a une quantité modérée de contenu et très peu de modules activés. Cependant, la base de données est trop volumineuse pour pouvoir être déplacée facilement et je souhaite la nettoyer.
J'ai effacé les tables de cache standard, syslog et accesslog.
Existe-t-il d'autres tables que je peux tronquer en toute sécurité sur un site Drupal standard?
{cache_form}
ne sont pas vraiment correctes. Ce n'est pas une vraie table de cache. Il contient des formulaires en cours de soumission. Si vous supprimez toutes les données de cette table, votre utilisateur risque de perdre des données. La bonne chose à faire avec cette table est d’expirer les entrées.Réponses:
Utilisez le module de sauvegarde et de migration , il est livré avec de bonnes valeurs par défaut pour ignorer les données non nécessaires . Par défaut, il génère une sauvegarde de base de données sans cache, sans chien de garde et quelques autres tables.
Si cela ne vous aide pas, jetez un œil à phpMyAdmin et dites-nous quelles tables contiennent de nombreuses entrées.
la source
Drupal 7 tables pouvant être exclues
Voici une liste de tables dans Drupal 7 que vous pouvez effacer (pour réduire la taille de la base de données) ou exclure en toute sécurité d'une migration (comme dans la question intitulée Comment réduire la taille de la base de données exportée localement pour contourner la limite d'importation de mon serveur? ):
Habituellement, les tables telles que
search_index
etwatchdog
utilisant beaucoup d’espace de base de données, il suffit donc d’éliminer ces 2 tables pour faire une énorme différence.Autres tables pouvant être exclues
Vérifiez la taille de vos tables restantes et identifiez lesquelles sont les plus grandes.
En règle générale, vous pouvez trouver des tables de session pour lesquelles aucune procédure de nettoyage n'est en place. Vous pouvez probablement également exclure de telles tables.
Module de sauvegarde et de migration
Pour réduire davantage le défi, comme indiqué dans " Comment réduire la taille de la base de données exportée localement afin de contourner la limite d'importation de mon serveur? ", Consultez également le module Sauvegarde et migration . Voici une citation de sa page de projet (annotations en gras ajoutées ici):
Et il y a encore plus: si votre environnement local (par exemple Win ou Mac) diffère du système d'exploitation que le serveur de votre site Web hébergé est en cours d'exécution (comme Linux), ces différences entre systèmes d'exploitation impliquent des défis supplémentaires potentiels. J'ai eu de bonnes expériences avec le module de sauvegarde et de migration entre différents systèmes d'exploitation, ce qui n'a posé aucun problème (a bien fonctionné) dans les cas où l'exportation / importation MySql classique avait échoué auparavant.
la source
cache_
préfixé ou en_cache
annexe sont sûrs tronquer ainsi, par exemplefeatures_cache
ou ,views_data_object_export_cache
etc._drupal_session_garbage_collection
gardera cette table rangée, en fonction des paramètres du système.D'après mon expérience, je purge toutes les tables "cache_ *".
la source
Je lance parfois ce SQL pour garder un œil sur la croissance des premières tables:
la source
Le chien de garde et les sessions peuvent également être effacés, gardez à l'esprit que tous les utilisateurs seront déconnectés.
la source
Avec MySQL, vous pouvez faire des choses amusantes avec le programme mysqldump pour exporter la base de données dans son intégralité ou en partie. Par exemple, cela exporte simplement la structure:
Vous pouvez ensuite utiliser l'option "ignorer la table" pour poursuivre l'exportation des données, par exemple:
Cela place les données à la fin du fichier précédent en ignorant certaines tables volumineuses.
Si vous avez ensuite besoin des tables volumineuses, vous pouvez les exporter dans un fichier différent en utilisant l’approche ci-dessus, puis les importer en morceaux (bien que des vérifications fk puissent être nécessaires).
Vous avez déjà compressé votre fichier avant de télécharger, ou est-ce une question idiote?
la source
Utilisez le module OptimizeDB pour nettoyer les tables de cache. L' administration de la base de données est également utile.
N'oubliez pas d'avoir une sauvegarde des bases de données.
la source
pas super expert en la matière, mais partager mon expérience ... si vous n'utilisez pas la sauvegarde et le module Migrate et les exporter manuellement certaines des tables , vous pouvez vider / troncature serait
watchdog
,cache
,cache_menu
,cache_block
,cache_content
,cache_form
comme ils peuvent contenir un grand quantité de choses en cache effacer qui, je suppose, ne ferait pas de mal ... mais encore une fois c'est mon expérience et je n'ai pas rencontré de problèmes ou de perte de données à cause de cela.la source
Quelques idées:
la source
Vérifiez la
example.drushrc.php
liste de ceux-ci:Vous pouvez les effacer en termes de déplacement de la base de données entre différents environnements (en particulier lorsque vous travaillez avec de grandes bases de données ). Cependant, vous devez toujours comprendre ce que vous effacez.
la source
Tables supplémentaires pouvant être effacées:
Autres éléments susceptibles de prendre un peu de place: - les anciennes versions de votre contenu (impossible de nettoyer avec un simple tronqué). - locales_source et locales_target. Si vous avez des langues qui ne sont plus utilisées ou des traductions de chaînes pour des modules que vous n'utilisez plus. Ces tables semblent ne jamais être nettoyées.
la source