Invalider Index deaktiviert Flat-Tables

Achtung: Wenn mann seine Produkt-Indizes (Flat-Tables) nicht im Griff hat kann es passieren das Magento wieder auf EAV-Tabellenabfragen zurückfällt. Deswegen immer ordentlich darauf achten das der Index 'catalog_product_flat' aktuell und nicht invalide ist.

Zuständig dafür ist die Methode isEnabledFlat in der Klasse Mage_Catalog_Model_Resource_Product_Collection

public function isEnabledFlat()
    {
        if (Mage::app()->getStore()->isAdmin()) {
            return false;
        }
        if (!isset($this->_flatEnabled[$this->getStoreId()])) {
            $this->_flatEnabled[$this->getStoreId()] = $this->getFlatHelper()
                ->isEnabled($this->getStoreId());
        }
        return $this->_flatEnabled[$this->getStoreId()];
    }

Diese deaktiviert ganz frech die Flat-Tables sobald in Index nicht aktuell ist. In einem aktuellen Projekt haben wir uns Testweise, durch Einbau von return true, dazu entschieden im Zweifel auch veraltete Flat-Tables zu verwenden. Ẃir erhoffen uns dadurch mehr Performance und etwas mehr Ruhe im System. Parallel kontrolliert ein Job dass die Flat-Tables niemals zu alt werden :)



Ein Beitrag von Tobias Vogt
Tobias's avatar

Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Seit 2016 ist er Mitgründer und CTO bei der connect-io GmbH, einer Magento-Agentur mit Sitz im idyllischen Paderborn-Salzkotten. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.

Alle Beiträge von Tobias

Kommentare
Volker am

Funktioniert das auch bei einem Catalog mit +1,2 Mio. Produkten und täglichen Updates zwischen 10 udn 50.000 Produkten? Hinzu kommen noch redaktionell erstelle Produkte.

Dein Kommentar