Для чего нужны таблицы search_index & search_dataset, можно ли их очистить?

8

Я пытаюсь сбросить sql с локального сайта разработчика на рабочий сервер, я обнаружил, что search_index & search_dataset эти две таблицы большие, что делает файл sql действительно большим.

Я предполагаю, что эти две таблицы предназначены для хранения поисковых индексов, которые я всегда могу переиндексировать позже. Поправь меня, если не прав.

Так можно ли безопасно удалить все записи из них ? затем экспортируйте базу данных, импортируйте на мой сервер. Делая это, я могу уменьшить размер файла дампа.

Спасибо!

gilzero
источник
Просто быстрое примечание: вам не нужно удалять все записи, а затем экспортировать. Если вы используете drush ... сделайте что-то вродеdrush sql-dump --structure-tables-list=search_index,cache,cache_form
General Redneck

Ответы:

10

Эти таблицы используются поисковой функцией сайта, как это предусмотрено модулем поиска ядра. Они созданы на основе контента вашего сайта, а описания в коде search_schema()говорят:

  • search_dataset - «Хранит элементы, которые будут искать»
  • search_index - «Хранит поисковый индекс, связывая слова, предметы и оценки»

Хотя вы можете игнорировать / усекать содержимое этих таблиц, чтобы уменьшить размер дампов базы данных, они будут воссозданы во время работы cron, так как контент вашего сайта будет переиндексирован. Помните, что время восстановления может быть длительным, если на вашем сайте много контента.

Я всегда считал, что модуль Backup and Migrate намного удобнее, чем MySQL из командной строки, поскольку таблицы и / или их содержимое можно игнорировать, а также выполнять запланированные дампы и иметь различные профили экспорта / импорта.

Джим Киркпатрик
источник