Magentoに株価指数があるのはなぜですか?


12

私は、ビット短いが目撃されているかもしれないが、私は、Magentoのは、株価指数を有するとき、背後にある理由を見つけることができないcataloginventory_stock_statuscataloginventory_stock_status_idx構造が同じであるが。

テーブルレベルで見つけることができる唯一の違いは次のとおりです。

  1. 行数にわずかなばらつきがあります
  2. cataloginventory_stock_status インデックステーブルに見つからない3つの外部キー制約があります。

ロックまたは特定のプロセスに関連する何らかの理由があり、チェックアウトに影響を与えるが、その理由に関する情報を見つけることができないと思われます。


とても興味深い!
パラススード14

回答:


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;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.