可以截断report_viewed_product_index


Answers:


17

据我所知/知道该表已包含在event中log_log_clean_after

如果您查看文件下的内容app/code/core/Mage/Reports/etc/config.xml,则会看到以下代码段。

<events>
    <log_log_clean_after>
        <observers>
            <reports>
                <class>reports/event_observer</class>
                <method>eventClean</method>
            </reports>
        </observers>
    </log_log_clean_after>
</events>

此方法仅清除所有报告事件,然后清除产品的查看和比较表。

public function eventClean(Varien_Event_Observer $observer)
{
    /* @var $event Mage_Reports_Model_Event */
    $event = Mage::getModel('reports/event');
    $event->clean();

    Mage::getModel('reports/product_index_compared')->clean();
    Mage::getModel('reports/product_index_viewed')->clean();

    return $this;
}

如果您确定具有logClean cron设置,则还应该使用它来清理报告。


大卫,好答案:)
AnnaVölkl2014年

12

我前一段时间对此进行了一些研究,因为我们对该表也有疑问。 report_viewed_product_index用于最近查看的产品。如果您不使用此功能:转到并截断:-)

如果您使用“最近查看的产品”功能,请检查您的Cron设置是否正确。表中不再存在的访客条目log/visitor应在log_log_clean_after活动时自动删除。

clean方法是Mage_Reports_Model_Resource_Product_Index_ViewedMage_Reports_Model_Resource_Product_Index_Abstract发生这种情况的地方继承的。

/**
 * Clean index (visitor)
 *
 * @return Mage_Reports_Model_Resource_Product_Index_Abstract
 */
public function clean()
{
while (true) {
    $select = $this->_getReadAdapter()->select()
        ->from(array('main_table' => $this->getMainTable()), array($this->getIdFieldName()))
        ->joinLeft(
            array('visitor_table' => $this->getTable('log/visitor')),
            'main_table.visitor_id = visitor_table.visitor_id',
            array())
        ->where('main_table.visitor_id > ?', 0)
        ->where('visitor_table.visitor_id IS NULL')
        ->limit(100);
    $indexIds = $this->_getReadAdapter()->fetchCol($select);

    if (!$indexIds) {
        break;
    }

    $this->_getWriteAdapter()->delete(
        $this->getMainTable(),
        $this->_getWriteAdapter()->quoteInto($this->getIdFieldName() . ' IN(?)', $indexIds)
    );
}
return $this;
}

自己回答还不错;)
David Manners 2014年

嗯,我们有很多与visitor_id记录是report_viewed_product_index NULL -似乎这些记录不会被删除
吉日Chmiel的
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.