Magento에 주식 지수가있는 이유는 무엇입니까?


12

약간의 시력이 떨어졌을 수도 있지만 Magento가 주식 인덱스를 가지고 cataloginventory_stock_status있고 cataloginventory_stock_status_idx구조가 동일한 이유를 찾을 수 없습니다 .

테이블 수준에서 찾을 수있는 유일한 차이점은 다음과 같습니다.

  1. 행 수에 작은 변화가 있습니다
  2. cataloginventory_stock_status 인덱스 테이블에 3 개의 외래 키 제약 조건이 없습니다.

잠금 또는 특정 프로세스가 체크 아웃에 영향을 미치지 만 그 이유에 대한 정보를 찾을 수없는 특정 프로세스와 관련된 이유가 있다고 가정합니다.


매우 흥미로운!
Paras는

답변:


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.