为什么Magento有股指?


12

我可能是目光短浅,但是当cataloginventory_stock_statuscataloginventory_stock_status_idx结构相同时,我找不到Magento具有股票指数的原因。

我可以在表级别找到的唯一区别是:

  1. 行数变化很小
  2. cataloginventory_stock_status 在索引表上找不到3个外键约束。

我认为将会有一些与锁定有关的原因或某些可能影响结帐但无法找到原因的信息的特定过程。


很有意思!
Paras Sood 2014年

Answers:


10

索引过程首先在_idx表中写入值,这样它在运行时不会干扰主表上的读取操作。
当所有值都插入_idx表中后,所有值都将复制到主表中。

看一下看起来如何Mage_CatalogInventory_Model_Resource_Indexer_Stock::reindexAll
还可以在下面的代码中查看我的评论:

public function reindexAll()
{
    $this->useIdxTable(true); //tell the indexer to use the _idx table
    $this->beginTransaction();
    try {
        $this->clearTemporaryIndexTable(); //clear data from the _idx table

        foreach ($this->_getTypeIndexers() as $indexer) {
            $indexer->reindexAll(); //reindex everything in the _idx table
        }

        $this->syncData(); //clear the main table and insert the values from the _idx table.
        $this->commit();
    } catch (Exception $e) {
        $this->rollBack();
        throw $e;
    }
    return $this;
}
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.