web-dev-qa-db-fra.com

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

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 d'index de recherche que je peux toujours ré-indexer à partir de zéro plus tard. Corrigez-moi si je me trompe.

Alors est-ce OK/sûr d'en supprimer tous les enregistrements? 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!

8
gilzero

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 en code dans search_schema() disent:

  • 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 MySQL en ligne de commande car les tables et/ou leur contenu peuvent être ignorés, ainsi que les sauvegardes planifiées et différents profils d'exportation/importation.

10
Jim Kirkpatrick