新Changelog表的机制(例如: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 |
+ ---------------------------------------- +

这些表格如何运作?目的是什么?

他们会在一段时间后自动清洗吗?

将这些表包括在备份中是否有意义?


Answers:


15

_cl每当更改特定实体时,这些更改日志(因此带有后缀)表均通过MySQL触发器填充。
然后,索引器cron作业(每分钟运行)将这些变更日志作为对Magento索引的增量更新应用。

使用MySQL触发器填充变更日志表的好处是,即使使用普通SQL添加新数据而不涉及PHP,它也可以工作。
如果您使用的是非标准导入方法(甚至是Mage_ImportExport模块),则无需运行完全重新索引。


时不时地截断这些表是否安全?目前有2500万条记录。
史蒂夫·罗宾斯

不确定。问题在于Magento可能取决于该表中存储的版本。我想指出的是,删除除最新版本以外的所有内容都是安全的,但是这样做会增加您的风险。甚至截断都是安全的-我不知道。
维奈2015年

5
Enterprise_Mview模块已经可以清除这些表。它从中获取每个表的最新version_id,enterprise_mview_metadata并删除任何version_id低于该版本的行。您可以通过以下方法启用索引清理:转到系统>配置>(高级部分)>索引管理,然后在“索引清理计划”下将“启用计划的清理”设置为“是”。
泰勒(Tyler V)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.