Механика новых таблиц изменений (например: catalog_category_product_cat_cl)

15

Я только что заметил упомянутые таблицы в базе данных. Я думаю, что они являются новыми в Magento EE 1.13 и могут быть связаны с новой индексацией.

+ ---------------------------------------- +
| catalog_category_flat_cl |
| catalog_category_product_cat_cl |
| catalog_category_product_index_cl |
| catalog_product_flat_cl |
| catalog_product_index_price_cl |
| cataloginventory_stock_status_cl |
| catalogsearch_fulltext_cl |
| enterprise_url_rewrite_category_cl |
| enterprise_url_rewrite_product_cl |
| enterprise_url_rewrite_redirect_cl |
+ ---------------------------------------- +

Как работают эти таблицы? Какова цель?

Они автоматически очищаются через некоторое время?

Имеет ли смысл включать эти таблицы в резервные копии?

Alex
источник
Полу родственные: magento.stackexchange.com/a/3930/69
B00MER

Ответы:

15

Эти _clтаблицы изменений (и, следовательно, суффиксов) заполняются через триггеры MySQL при каждом изменении конкретной сущности.
Затем задание cron индексатора (выполняется каждую минуту) будет применять эти журналы изменений в качестве дополнительных обновлений индексов Magento.

Преимущество использования триггеров MySQL для заполнения таблиц журнала изменений заключается в том, что он работает, даже если новые данные добавляются с использованием простого SQL, без использования PHP.
Это устраняет необходимость запуска полного переиндексации, если вы используете нестандартный метод импорта (или даже модуль Mage_ImportExport).

Vinai
источник
Безопасно ли урезать эти таблицы время от времени? На данный момент на 25м записи.
Стив Роббинс
Точно сказать не могу. Проблема в том, что Magento может зависеть от версии, хранящейся в этой таблице. Я хотел бы пояснить, что безопасно удалить все, кроме последней версии, но делайте это на свой страх и риск. Может быть, даже усечение безопасно - я не знаю.
Винай
5
Модуль Enterprise_Mview уже имеет возможность очищать эти таблицы. Он берет последний version_id для каждой таблицы enterprise_mview_metadataи удаляет все строки с version_id ниже этого. Чтобы включить очистку индекса, перейдите в «Система»> «Конфигурация» (раздел «ДОПОЛНИТЕЛЬНО»)> «Управление индексами» и установите для параметра «Включение очистки по расписанию» значение «Да» в разделе «Очистка индекса».
Тайлер В.