ทำไมวีโอไอพีถึงมีดัชนีหุ้น


12

ฉันอาจจะสายตาสั้น แต่ไม่สามารถหาเหตุผลเบื้องหลัง Magento ที่มีดัชนีหุ้นเมื่อcataloginventory_stock_statusและcataloginventory_stock_status_idxเหมือนกันในโครงสร้าง

ข้อแตกต่างเดียวที่ฉันสามารถหาได้ที่ระดับโต๊ะคือ:

  1. จำนวนแถวมีการเปลี่ยนแปลงเล็กน้อย
  2. cataloginventory_stock_status มีข้อ จำกัด กุญแจต่างประเทศ 3 ข้อที่ไม่พบในตารางดัชนี

ฉันคิดว่าจะมีเหตุผลบางอย่างที่เกี่ยวข้องกับการล็อคหรือกระบวนการบางอย่างที่มันจะส่งผลกระทบต่อการชำระเงิน แต่ไม่สามารถหาข้อมูลว่าทำไม


น่าสนใจมาก!
Paras Sood

คำตอบ:


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.