新しい変更ログテーブルのメカニズム(例: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 |
+ ---------------------------------------- +

これらのテーブルはどのように機能しますか?目的は何ですか?

しばらくすると自動的にクリーニングされますか?

それらのテーブルをバックアップに含めることは理にかなっていますか?


回答:


15

これらの変更ログ(したがって_clサフィックス)テーブルは、特定のエンティティが変更されるたびにMySQLトリガーを介して書き込まれます。
その後、インデクサーcronジョブ(毎分実行)は、これらの変更ログをMagentoインデックスの増分更新として適用します。

MySQLトリガーを使用してchangelogテーブルを埋める利点は、PHPを使用せずにプレーンSQLを使用して新しいデータが追加されても機能することです。
これにより、非標準のインポート方法(またはMage_ImportExportモジュール)を使用している場合、完全な再インデックスを実行する必要がなくなります。


これらのテーブルを時々切り捨てても安全ですか?現在、25mレコード。
スティーブロビンズ

わからない。問題は、Magentoがそのテーブルに保存されているバージョンに依存する可能性があることです。私は、最新バージョン以外のすべてを削除しても安全ですが、リスクに応じて削除することをお勧めします。たぶん切り捨てさえ安全です-私は知りません。
ビナイ

5
Enterprise_Mviewモジュールには、すでにこれらのテーブルをクリーニングする機能があります。各テーブルの最新のversion_idをenterprise_mview_metadata取得し、それより低いversion_idの行を削除します。インデックスクリーンを有効にするには、[システム]> [構成]>([詳細]セクション)> [インデックス管理]に移動し、[インデックスクリーンスケジュール]で[スケジュールクリーンアップを有効にする]を[はい]に設定します。
タイラーV。15年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.