Blogeinträge für mysql

Technologie
Magento – keine Produkte im Shop bei Indexerstellung
von Markus Schneider am

Ein sehr ungewöhnliches Problem ist uns bei einem größeren Magento Shop eines Kunden begegnet. Jedes Mal wenn in Magento die Indizes neu erstellt wurden, waren im Shop keine Produkte mehr verfügbar. Das ist natürlich mehr als ärgerlich, denn der Workaround, die Indizes nur in der Nacht neu zu bauen, ist bei einem Shop, der viele Produkte hat und diese häufig aktualisiert nicht sehr praktikabel.

Eine Auswertung des SQL-Query-Logs ergab erstmal nichts auffälliges, der ganze Prozess zur Indexerstellung lief in einer Transaktion ab. Bei einem genauen Blick und sorgfältiger Analyse stellte man fest, dass Magento im Model Mage_Index_Model_Mysql4_Abstract den SQL-Befehl „ALTER TABLE {$destTable} DISABLE KEYS“ immer ausführt, auch wenn die Storage-Engine von MySQL InnoDB ist. Diese Zeile existiert, um das nachfolgende INSERT zu beschleunigen, dies ist aber nur bei MyISAM notwendig. Unter InnoDB sorgt es dafür, dass ein implizierter Commit gemacht wird und damit die Indextabelle erstmal leer ist. Das Überschreiben des Models hat das Problem gelöst.

In der aktuellen Magento-Version ist das Problem behoben, aber nicht jeder will und kann seinen Shop gleich updaten.

Falls Sie auch Interesse an Magento oder Odoo haben oder unsere Expertise für Ihr ERP-Projekt benötigen, dann nehmen Sie mit uns Kontakt auf. Wir helfen Ihnen gerne weiter! Sie erreichen uns entweder telefonisch unter +49 4105 56156-99, per Mail an info@initos.com oder über unser Kontaktformular.

Lesen
zurück zur Übersicht