Рейтинг:1

Удалить миллионы неиспользуемых абзацев и их данные?

флаг in

У нас есть сайт, который за несколько лет создал 10 миллионов записей в таблице paraps_item. Это результат большого количества переносов данных (где задействованы абзацы), и теперь есть много сирот (вероятно, 90% из них).

Entity Reference Revisions теперь поставляется с командой Drush для «очистки» потерянных сущностей. Кажется, это работает, но с таким количеством просмотров кажется, что просмотр всех из них займет очень много времени. Следует отметить, что они нет осиротел в результате удаления хост-объекта. Из-за того, как данные переносятся, абзацы перестраиваются и заменяются в соответствии с определением миграции. Мы не можем изменить это сейчас, пока в подмножестве данных не появится какой-то хэш, указывающий, следует ли нам импортировать или пропустить.

У меня есть подозрение, что это приводит к тому, что запрос в формах редактирования при редактировании абзаца со временем становится медленнее, что теперь приводит к невозможности его выполнения (MariaDB перестает отвечать). Несмотря на то, что все поля индексируются по схеме Paragraphs, эффективность снижается.

Если я очистил и позволил ему удалить, например, 200 000 элементов, запуск OPTIMIZE sql для таблицы paraps_item, кажется, поддерживает эту теорию. Первое редактирование занимает 8 секунд, чтобы загрузить абзац, после этого это происходит почти мгновенно. Итак, удаление всех неиспользуемых абзацев — это то, что я думаю, мы должны сделать. Я понимаю, что OPTIMIZE в InnoDB приводит к перестроению индекса, но в случаях, когда вы обновляете версии базы данных, эти данные настолько велики, что я думаю, что они не могут перестраиваться при определенном пороге.

Есть ли более быстрый способ запрашивать и удалять потерянные абзацы помимо очистки?

4uk4 avatar
флаг cn
Зная специфику сайта, вы можете написать более быструю собственную службу очистки, удалив или упростив проверки использования, а затем увеличив размер пакета. Значение по умолчанию 50 в вашем случае слишком низкое. И на будущее добавьте службу очистки в качестве обработчика очереди после миграции.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.