À quoi servent les tables search_index et search_dataset, puis-je les nettoyer?

8

J'essaie de vider sql du site de développement local vers le serveur de production, j'ai trouvé que search_index & search_dataset ces deux tables sont grandes, ce qui rend le fichier sql très gros.

Je suppose que ces deux tableaux concernent le stockage des index de recherche que je peux toujours ré-indexer à partir de zéro plus tard. Corrigez-moi si je me trompe.

Donc , est - il OK / sûr de supprimer tous les enregistrements d'entre eux ? puis exportez la base de données, importez sur mon serveur. En faisant cela, je peux réduire la taille du fichier de vidage.

Merci!

gilzero
la source
Juste une petite note: vous n'avez pas besoin de supprimer tous les enregistrements, puis d'exporter. Si vous utilisez le drush ... faites quelque chose commedrush sql-dump --structure-tables-list=search_index,cache,cache_form
Général Redneck

Réponses:

10

Ces tableaux sont utilisés par la fonction de recherche du site, telle que fournie par le module de recherche du noyau. Ils sont construits à partir du contenu de votre site et les descriptions dans le code search_schema()indiquent:

  • search_dataset - "Stocke les éléments qui seront recherchés"
  • search_index - "Stocke l'index de recherche, associant les mots, les éléments et les scores"

Bien que vous puissiez ignorer / tronquer le contenu de ces tables pour réduire la taille de vos vidages de base de données, ils seront recréés lors des exécutions cron à mesure que le contenu de votre site est réindexé. Attention, les délais de reconstruction peuvent être longs si votre site contient beaucoup de contenu.

J'ai toujours trouvé que le module de sauvegarde et de migration était beaucoup plus pratique que la ligne de commande MySQL car les tables et / ou leur contenu peuvent être ignorés, ainsi que les sauvegardes planifiées et les différents profils d'exportation / importation.

Jim Kirkpatrick
la source